Author:
BYVoid <byvoid.kcp@gmail.com>

Contributors:
Peng Huang <shawn.p.huang@gmail.com>
Kefu Chai <tchaikov@gmail.com>