work on cached copy then commit