- Refactor this project and use cpprtti instand of custom implementation