Removes dep. from scope to the container and component registration
Adds register_as to register as another type, or subtype
Adds callback registration