もっと低レベルな基底クラスを作ってレイアウトも任せたらどうでしょうか