Major refactor, now single threaded

Some more elucidation on function would be nice here; like maybe "registers the functions and then enters main loop" rather than "all the things"