added environment support
inject Environment in every component. Modified injection and bootstrapping.
Merge remote-tracking branch 'origin/dev' into dev