many blame. please do not merge this request.

動作確認したわけじゃないので、マージしたら動作保証しません
気になるところにコメント入れまくり。