An additional refactoring has been done for the domain/data layer.

The domain layer still retained references to the database backing the data layer. An additional abstraction has been created to fully separate the domain layer and the database that backs the data layer.