Moving more logic out to other classes and pulling things out of the main class