Separated Injectors into their own class and made them generic
Updated all the tests/code to use the new injector syntax
Cleaned up several code issues