Persist with callbacks