constructor injection
refactor