Use new Relfection API for constructor injection and property injection. Some refactoring.