squashed commits for #1255 to change delete() to a move operation

I squashed the commits from #1269 and rebased them onto the current dev branch.