splitting old code into classes
actually adding new classes