implementation for _process_data