Completely overhauled structure.  This follows the C++ standards better now.