Refactored virtual class support for being generally usable e.g. for other non-class items.
Cleanup