added callback to force save