new version, change data process function