The Great C++ Switch

Now in full swing. Being done in order to hopefully make the code more
modular and easier to understand. Still some work to be done to comment
and name things more descriptively/structure in a better way.