explicit dependency injection
move controllers to a folder
added admin controller and loading state