Rewrote most of the code into a multiple file solution that looks much prettier. Functionallity is the exact same