code refactor/clean up
DI at Constructor level