ここを参考に、自分で一応書きなおした。