refactored and updated entities and added UUID, all tests are functional