1) Separated service to two groups: external, which are exposed to controllers and return DTO objects and internals which return model objects