diff --git a/src/tosca/parser.py b/src/tosca/parser.py
index af70d27..22e26a0 100644
--- a/src/tosca/parser.py
+++ b/src/tosca/parser.py
@@ -115,6 +115,13 @@
                 ordered_models_templates.append(templates_by_model_name[name])
         return ordered_models_templates
 
+    @staticmethod
+    def populate_dependencies(model, requirements, saved_models):
+        for dep in requirements:
+            class_name = dep.keys()[0]
+            related_model = saved_models[dep[class_name]['node']]
+            setattr(model, "%s_id" % class_name, related_model.id)
+        return model
 
     def __init__(self, recipe):
 
@@ -124,6 +131,8 @@
         self.templates_by_model_name = None
         # list of models ordered by requirements
         self.ordered_models_name = None
+        # dictionary containing the saved model
+        self.saved_model_by_name = {}
 
         self.ordered_models_template = []
         self.recipe_file = TOSCA_RECIPES_DIR + '/tmp.yaml'
@@ -150,13 +159,16 @@
                 if class_name not in RESOURCES:
                     raise Exception("Nodetemplate %s's type %s is not a known resource" % (recipe.name, class_name))
                 model = GRPCModelsAccessor.get_model_from_classname(class_name, data)
-                # [] populate model with data
+                # [] populate model with data[[
                 model = self.populate_model(model, data)
                 # [] check if the model has requirements
                 # [] if it has populate them
+                model = self.populate_dependencies(model, recipe.requirements, self.saved_model_by_name)
                 # [] save or update
                 model.save()
 
+                self.saved_model_by_name[recipe.name] = model
+
         except Exception as e:
             print e
             if e.message:
diff --git a/src/tosca/tmp.yaml b/src/tosca/tmp.yaml
deleted file mode 100644
index e5b9fbd..0000000
--- a/src/tosca/tmp.yaml
+++ /dev/null
@@ -1,39 +0,0 @@
-tosca_definitions_version: tosca_simple_yaml_1_0
-
-description: Persist xos-sample-gui-extension
-
-imports:
-   - custom_types/user.yaml
-   - custom_types/site.yaml
-   - custom_types/xosguiextension.yaml
-
-topology_template:
-  node_templates:
-
-    # UI Extension
-    test:
-      type: tosca.nodes.XOSGuiExtension
-      properties:
-        name: test
-        files: /spa/extensions/test/vendor.js, /spa/extensions/test/app.js
-
-    # Site
-    onlab:
-      type: tosca.nodes.Site
-      properties:
-        name: Open Networking Lab
-        site_url: http://onlab.us/
-        hosts_nodes: True
-
-    # User
-    test@opencord.org:
-      type: tosca.nodes.User
-      properties:
-        password: mypwd
-        firstname: User
-        lastname: Test
-        is_admin: True
-      requirements:
-        - site:
-            node: onlab
-            relationship: tosca.relationships.BelongsToOne
\ No newline at end of file
