domain layer solved