directory operations implemented