diff --git a/README-extensions.rst b/README-extensions.rst
index 22991c4..d321fa1 100644
--- a/README-extensions.rst
+++ b/README-extensions.rst
@@ -347,6 +347,8 @@
 
 The feature is expected to improve flexibility while sharing classes between your models.
 
+Please mpte that you can't use '..' without any calss following. If you want simply up in the sctructure, type in '..init'.
+
 It's a new feature use it with care and mind that using "relative syntax" lower traceability of
 your pillar composition.
 
diff --git a/reclass/storage/yamldata.py b/reclass/storage/yamldata.py
index c549089..f153303 100644
--- a/reclass/storage/yamldata.py
+++ b/reclass/storage/yamldata.py
@@ -58,24 +58,32 @@
         parent = '.'.join(structure[0:-1])
         new_names = []
         for n in names:
-            if n[0] == '.':
-                if len(n) > 1 and n[1] == '.':
-                    grandparent = '.'.join(structure[0:-2])
-                    if len(n) == 2:
-                        n = grandparent
-                    elif parent == '' or grandparent == '':
-                        n = n[2:]
-                    else:
-                        n = grandparent + n[1:]
-                elif parent == '':
-                    n = n[1:]
-                elif len(n) == 1:
-                    n = parent
-                else:
-                    n = parent + n
+            if n[0] == '.' and len(n) > 1 and n[1] == '.':
+                grandparent = '.'.join(structure[0:-2])
+                n = self.get_grandparent_directory(n, parent, grandparent)
+            else:
+                n = self.get_parent_directory(n, parent)
             new_names.append(n)
         return new_names
 
+    def get_parent_directory(self, name, parent):
+        if parent == '':
+            name = name[1:]
+        elif len(name) == 1:
+            name = parent
+        else:
+            name = parent + name
+        return name
+
+    def get_grandparent_directory(self, name, parent, grandparent):
+        if len(name) == 2:
+            name = grandparent
+        elif parent == '' or grandparent == '':
+            name = name[2:]
+        else:
+            name = grandparent + name[1:]
+        return name
+
     def get_entity(self, name, settings):
         #if name is None:
         #    name = self._uri
