@dev ah yes, that reminds me of my first job, where the senior dev had decided it was a great idea to pass a void* as a parameter to a function, cast it to a base class that had a bunch of functions called "isDerivedClass1()", "isDerivedClass2()" etc, called each of those until one returned true, cast the void* to the appropriate derived class and then continued handling the object accordingly.