Refactor to more, smaller classes