More C++11 refactoring + moving away from structs to inherited classes