[TASK] Refactor and completely cover with tests the abstract Controller class