xiakoi, before merge...
Xiaokai's work.