support useDefine