         self.path = ""
     }
 
+    /// Create a Path from a given String
     public init(_ path:String) {
         self.path = path
     }
 
+    /// Create a Path by joining multiple path components together
     public init(components:[String]) {
         path = join(Path.separator, components)
     }

        return self(value)
    }

    // Returns the current working directory
    public static var current:Path {
        get {
            return self(NSFileManager().currentDirectoryPath)

        return NSFileManager().moveItemAtPath(self.path, toPath: destination.path, error: nil)
    }

    /** Changes the current working directory of the process to the path during the execution of the given block.
    :param: closure A closure to be executed while the current directory is configured to the path.
    :note: The original working directory is restored when the block exits.
    */
    public func chdir(closure:(() -> ())) {
        let previous = Path.current
        Path.current = self
        closure()
        Path.current = previous
    }

