New system now uses an if rather than function pointer (less issues with namespaces etc), very minimal overhead since it shouldn’t branch unless its debug code