refactored dtoextensions