https://medium.com/@derry.r05/exploring-the-capabilities-of-c-object-oriented-programming-memory-management-interoperability-ae0a6467a622