要件が揃ったのでコードを整理