Feature #65, refactoring controllers, services, middlewares and modules