Это довольно сложная иерархия наследования, так что потерпите меня (я пытался упростить вещи, а не...