Totally restructured hpp/cpp files and Makefile
Now it's actually best-practices C++ (I hope!)