A smaller refactor to make the objects simpler