Refactor to use constructor DI
DI through constructor and few violations fixed
Fixed few violations