There are 2 kinds of factory : factory level and System level, factory responsible for every factory instance, System for all facotrys, (only 2 system factory property).
Evironment got properties for /hibernate.properties first, and then from System.getProperties() to ovrride old one!
Totally, Evironment represents properties.