Ну так вот, реально це якось зробити так, щоб всі ці класи не були в одній ієрархії наслідування, і щоб за потреби без зайвих проблем можна було передати ще 1 новий тип, з тією ж сигнатурою методу, без того, щоб щось дописувати(того variant не сильно підходить)?