OOの継承使えば、もっとエレガントなコードになると思うが。。。
>>1は責任もって、OOの(以下略