fixes, cleanup and formatting
SOLID: L: problem
SOLID: L: fix
SOLID: I - interface segregation
SOLID: D, Dependency: problem
SOLID: D, Dependency injection: fix
cleanup