Mark all malloc like functions and add their appropriate free function to let the compiler complain on mismatches
most protocol internal caches do not need to be exposed. this reduces the public API and allows us to more easily improve/change this during a release cycle