before and after save function list