Architectural refactoring
- Implemented controller factory
- Implemented dependency manager factory
- Refactored repositories to use Generics
- Improved error support