separating logical domain objects and models