a lot of bug fix

関数と宣言と手続きを明確に分離
かっこいい