いくつかコメント入れたのと多少手直しした