データに依存してない部分を関数の外に出す

TODO: global な名前空間を汚しているので、無名関数化する