I'm going to have to redo the entire main loop