ちょこっとリファクタリングしたけどまだわかりにくいかな