added constructor injection