インターフェースを使わずに具象クラスを使ったりキャストが混乱するように変更