refactored controllers and DTOs