The domain layer