This is a big commit
A really big commit
You shouldn't read it
Just pretend it's always been this way
Read the future commits, they're smaller (probably)...

Complete refactor. This makes more sense.
I got tired of having to keep track of global variables and
	control flow interactions, now I don't have to.