adding data transfer objects and presentation models