structs, methods, inheritance, oo-cmake goodness