Finish!

If I found some bugs, I would check in some new codes!