The difference between icopy and move was not clear to me until after reading the source code. Hopefully this makes it a little easier to understand.