diff --git a/core/corehttp/gateway_handler.go b/core/corehttp/gateway_handler.go
index 31ead9239799b71489ced48eae5a5ef7ea1f94fd..8a28e30938a6fe3c66dd29f1399bffc9b8be3e14 100644
--- a/core/corehttp/gateway_handler.go
+++ b/core/corehttp/gateway_handler.go
@@ -240,7 +240,7 @@ func (i *gatewayHandler) postHandler(w http.ResponseWriter, r *http.Request) {
 }
 
 func (i *gatewayHandler) putEmptyDirHandler(w http.ResponseWriter, r *http.Request) {
-	newnode := uio.NewDirectory(i.node.DAG).GetNode()
+	newnode := uio.NewEmptyDirectory()
 
 	key, err := i.node.DAG.Add(newnode)
 	if err != nil {
@@ -266,7 +266,7 @@ func (i *gatewayHandler) putHandler(w http.ResponseWriter, r *http.Request) {
 
 	var newnode *dag.Node
 	if pathext[len(pathext)-1] == '/' {
-		newnode = uio.NewDirectory(i.node.DAG).GetNode()
+		newnode = uio.NewEmptyDirectory()
 	} else {
 		newnode, err = i.newDagFromReader(r.Body)
 		if err != nil {
diff --git a/unixfs/io/dirbuilder.go b/unixfs/io/dirbuilder.go
index b30d9ea3ae4fb101810ce620f20621e14858d714..ef74f3de03d89ac1f6af041d8e1cf5c450be065e 100644
--- a/unixfs/io/dirbuilder.go
+++ b/unixfs/io/dirbuilder.go
@@ -15,15 +15,22 @@ type directoryBuilder struct {
 	dirnode *mdag.Node
 }
 
+// NewEmptyDirectory returns an empty merkledag Node with a folder Data chunk
+func NewEmptyDirectory() *mdag.Node {
+	return &mdag.Node{Data: format.FolderPBData()}
+}
+
+// NewDirectory returns a directoryBuilder. It needs a DAGService to add the Children
 func NewDirectory(dserv mdag.DAGService) *directoryBuilder {
 	db := new(directoryBuilder)
 	db.dserv = dserv
-	db.dirnode = new(mdag.Node)
-	db.dirnode.Data = format.FolderPBData()
+	db.dirnode = NewEmptyDirectory()
 	return db
 }
 
+// AddChild adds a (name, key)-pair to the root node.
 func (d *directoryBuilder) AddChild(name string, k u.Key) error {
+	// TODO(cryptix): consolidate context managment
 	ctx, cancel := context.WithTimeout(context.TODO(), time.Minute)
 	defer cancel()
 
@@ -40,6 +47,7 @@ func (d *directoryBuilder) AddChild(name string, k u.Key) error {
 	return nil
 }
 
+// GetNode returns the root of this directoryBuilder
 func (d *directoryBuilder) GetNode() *mdag.Node {
 	return d.dirnode
 }