add a data_process function