Review and improve interface hierarchy

see #19398 (moved) (comment 10)