Combine James Chan's work
merge
Merge pull request #6 from yqjiang/master

Combine James Chan's work