Rename is now independent function used by copy and move functions when needed

This should fix #97 for good without modifying existing api.