add publicDefine to conform the codes