Refactored DTOs to support generics