関数化と細かい部分の修正