refactor DTO