#249 HMに依存する部分と依存しない部分に分けた