added domain layer classes