start breaking out code into classes