changed implementation to allow for arbitrarily long class names by making the inject decorator the key provider for the class names being injected