implemented move() and rename()