patched behaviour with subclasses