diff --git a/cmd/path-traversal/path_traversal.go b/cmd/path-traversal/path_traversal.go
new file mode 100644
index 0000000000000000000000000000000000000000..9952b95896c93721134b7ea829fcf60693140fba
--- /dev/null
+++ b/cmd/path-traversal/path_traversal.go
@@ -0,0 +1,62 @@
+package main
+
+import (
+	schema "code.fbi.h-da.de/cocsn/yang-models/generated/arista"
+	"fmt"
+	"github.com/openconfig/goyang/pkg/yang"
+)
+
+type PathElement struct {
+	Children []*PathElement
+	Name     string
+}
+
+func (p *PathElement)Print()  {
+	printPE(0, p)
+}
+
+func printPE(indent int, pe *PathElement) {
+	for i := 0; i < indent; i++ {
+		fmt.Print("    ")
+	}
+	fmt.Println(pe.Name)
+	if len(pe.Children) > 0 {
+		for _,p := range pe.Children {
+			printPE(indent+1, p)
+		}
+	}
+}
+
+func main() {
+	tree := schema.SchemaTree
+	paths := make(map[string]*PathElement)
+
+	for k,v := range tree {
+		if v.Parent != nil {
+			if v.Parent.Name == "device" {
+				pathElement := processEntry(v)
+				pathElement.Print()
+				paths[k] = pathElement
+			}
+		}
+	}
+}
+
+func processEntry(e *yang.Entry) *PathElement {
+	if e.Dir != nil {
+		elem := &PathElement{
+			Children: make([]*PathElement, len(e.Dir)),
+			Name:     e.Name,
+		}
+		i := 0
+		for _,v := range e.Dir {
+			elem.Children[i] =  processEntry(v)
+			i++
+		}
+		return elem
+	}
+	leaf := &PathElement{
+		Name:     e.Name,
+	}
+	return leaf
+}
\ No newline at end of file
diff --git a/go.mod b/go.mod
index 52dff3736e40065e46ff398d923299ce67d64ad3..c29f903c1b5ee98c884c1d3b33115d8ca1680a3b 100644
--- a/go.mod
+++ b/go.mod
@@ -4,7 +4,7 @@ go 1.14
 
 require (
 	code.fbi.h-da.de/cocsn/swagger/apis v0.0.0-20200924152423-61030cab7b88
-	code.fbi.h-da.de/cocsn/yang-models v0.0.3
+	code.fbi.h-da.de/cocsn/yang-models v0.0.4
 	github.com/aristanetworks/goarista v0.0.0-20201120222254-94a892eb0c6a
 	github.com/gdamore/tcell/v2 v2.0.1-0.20201017141208-acf90d56d591
 	github.com/go-openapi/runtime v0.19.22
@@ -14,6 +14,7 @@ require (
 	github.com/google/uuid v1.1.2
 	github.com/neo4j/neo4j-go-driver v1.8.3
 	github.com/openconfig/gnmi v0.0.0-20200617225440-d2b4e6a45802
+	github.com/openconfig/goyang v0.2.2
 	github.com/openconfig/reference v0.0.0-20190727015836-8dfd928c9696
 	github.com/openconfig/ygot v0.10.0
 	github.com/rivo/tview v0.0.0-20201018122409-d551c850a743
diff --git a/go.sum b/go.sum
index 38b74c2cbf1df0528fe5d520168c3857d0301cb3..62901d0ef3b8508cd5e77694c0ea3c3d58b888c2 100644
--- a/go.sum
+++ b/go.sum
@@ -14,6 +14,8 @@ code.fbi.h-da.de/cocsn/swagger/apis v0.0.0-20200924152423-61030cab7b88 h1:cNqY3W
 code.fbi.h-da.de/cocsn/swagger/apis v0.0.0-20200924152423-61030cab7b88/go.mod h1:3jDZAOmepPl3kiukNGvPFkJEzgGczgrC3zJ2jcqVFSs=
 code.fbi.h-da.de/cocsn/yang-models v0.0.3 h1:VTVHDTyJiC2TeTAZyxJ1ZFqRwo6H7UeY7PXfp9GXYEY=
 code.fbi.h-da.de/cocsn/yang-models v0.0.3/go.mod h1:X40pn/xQ1lTNbFFN9QFK99oSNaeN/Rg3MSpdhWc3IS8=
+code.fbi.h-da.de/cocsn/yang-models v0.0.4 h1:y/Ph5CaD2NJDPjoOuS59iKrMYf9bvpg2/hefC2RG6E4=
+code.fbi.h-da.de/cocsn/yang-models v0.0.4/go.mod h1:7MnNmAQ9o84BpUepcaV6RB1mBGCNyXVJcdbKUl6rK0g=
 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
 github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=