Reassign responsibilities; use @property decoration
Refactor c++ type name check
More refactoring; some comments