added another few classes for domain model