create new classes to move functions out of main class