説明を追加して、ソースコードをシンプルにしました