Switch from C to C++

Made the switch to c++ because I need std::vector and namespaces,
however I am still keeping a c-style design and am only using classes
when absolutely necessary