fix it with M5
minor style cleanup
added allow implicit injection flag
Implemented creation and visiblity behaviors and Injector.instantiate