Boyang's Commit

Contains some features which I can't remember exactly.