add saverecordcallback