すこしリファクタリングした