write by ykq 2014-04-22