merge from ziteng