removed base class complexity and cleaned up domain objects