@peterdrake There's a good reason behind this one, though. It allows it to only hook those functions up if they exist, through the magic of Reflection. If they were virtual or abstract, there would be massively increased overhead calling every function on every object, 90% of which are just empty braces.