diff --git a/app/services/topics_importer.rb b/app/services/topics_importer.rb
index 1acf80432b5c40bc85c4ab2b7efd91db22467fd2..370fec90bb3e6d548794cd27f7207043792dd187 100644
--- a/app/services/topics_importer.rb
+++ b/app/services/topics_importer.rb
@@ -9,26 +9,25 @@ class TopicsImporter
 
   def import
 
-    relations = []
-
     @items.each do |learning_object|
 
       lo_topics = parse_topics ( learning_object.get_metadata_values_of "dc.subject.category" )
 
       lo_topics.each_with_index do |topic_name, i|
 
-        next if topic_exists? topic_name
+        if !topic_exists? topic_name
+          topic = Topic.where(name: topic_name).new
+          create_relations(topic_name)
+        end
 
-        topic = Topic.where(name: topic_name).new
         topic.learning_objects << learning_object
-        create_relations(lo_topics[i - 1], topic_name) unless i == 0
         @@topics[topic_name] = topic
 
       end
       separate_relations()
     end
 
-    Topic.import @@topics.values
+    Topic.import @@topics.values, recursive: true
     import_topics_relations()
 
   end
@@ -36,9 +35,8 @@ class TopicsImporter
 
   private
 
-  def create_relations parent_name, child_name
-    @@topics_relations.push(parent_name)
-    @@topics_relations.push(child_name)
+  def create_relations topic_name
+    @@topics_relations << topic_name
   end
 
   def separate_relations