Phase I refactor adding new classes to support the new seperation of data in the database