オブジェクト指向的に設計やりなおして成功した