Applied Single Responsibility to home controller
Applied Open-Closed principle to usermanager
Added Liskov substitution rule example user manager
Applied interface abstraction for usermanager