I feel quite dumb, but I'm not sure I understand how that would work :B If you'd register to UIManager with some class that inherits from said base class, wouldn't UIManager end up calling every virtual function in there, even if not overridden, and thus be a waste? And wouldn't that prevent such usage in some situations where you're hindered by non-multiple inheritance, and don't want to inherit from said base class, but for example from MonoBehaviour?