added domain models
generic repository + entity repositories + unit of work