Added more explicite data model layer