use a transaction to collapse into a single undo
bump version