diff --git a/resource_management/__init__.py b/resource_management/__init__.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..d5f1d2445712ecc70bc2ca6645848d94498398d8 100644
--- a/resource_management/__init__.py
+++ b/resource_management/__init__.py
@@ -0,0 +1,9 @@
+import logging
+from hardware.router import load_router
+from db.router import import_routers
+
+logger = logging.getLogger(__name__)
+
+fqdns = ["core1.spa.private", "core2.spa.private", "core3.spa.private"]
+routers = import_routers(fqdns)
+list(routers)
diff --git a/resource_management/db/model.py b/resource_management/db/model.py
index 2116506c85b2fabc6d63f2656951c64472bb09aa..48a10aa75fc591bcd4e84e4b363bd1c619b6233f 100644
--- a/resource_management/db/model.py
+++ b/resource_management/db/model.py
@@ -45,6 +45,7 @@ class Port(base_schema):
     __tablename__ = 'ports'
     id = Column('id', Integer, primary_key=True)
     name = Column('name', String, nullable=False)
+    speed = Column('speed', Integer, nullable=False)
     line_card_id = Column(
         'line_card_id', Integer, ForeignKey('line_cards.id'))
     line_card = relationship('LineCard', back_populates='ports')
diff --git a/resource_management/db/router.py b/resource_management/db/router.py
new file mode 100644
index 0000000000000000000000000000000000000000..7dc7c148e54ddff52bccdcc874ed3267e8101d28
--- /dev/null
+++ b/resource_management/db/router.py
@@ -0,0 +1,16 @@
+import logging
+from hardware.router import load_router
+
+logger = logging.getLogger(__name__)
+
+#TODO for each node (fqdn):
+# first store this node in DB, get back its ID
+# then use the id obtained above for node_id in line_cards table
+# store the line cards in DB, and for each of them, get a mapping of id and position fields
+# for each line_card_id, use the id from above that matches the position (returned as <line_card_position> from import_routers)
+# finally store the ports in DB
+def import_routers(fqdns):
+    for fqdn in fqdns:
+        router = load_router(fqdn)
+        print(router)
+        yield router
\ No newline at end of file
diff --git a/resource_management/hardware/router.py b/resource_management/hardware/router.py
index deafb24d0ae7b2008f134e2499460b20ee754bca..82da0d677a72e74009b691a69061ab0e503a4a03 100644
--- a/resource_management/hardware/router.py
+++ b/resource_management/hardware/router.py
@@ -7,60 +7,41 @@ from jnpr.junos.op.phyport import PhyPortTable
 
 logger = logging.getLogger(__name__)
 
-PORT_SPEEDS = { "ge": 1, "xe": 10, "et": 40 }
+def load_router(fqdn):
 
-nodes = [
-    { "_id": 1, "fqdn": "core1.spa.private" },
-    { "_id": 2, "fqdn": "core2.spa.private" },
-    { "_id": 3, "fqdn": "core3.spa.private" },
-]
-line_cards = []
-ports = []
+    line_cards = []
+    ports = []
 
-#def load_router(list_of_nodes_fqdn)
-def load_router():
-
-    for node in nodes:
-        dev_id = node["_id"]
-        devname = node["fqdn"]
-        # Establish connection
-        try:
-            dev = Device(host=devname, passwd="Ansible01@", ssh_config="/home/ubuntu/.ssh/config")
-            dev.open()
-        except ConnectError as err:
-            print("Cannot connect to device: {0}".format(err))
-        except ConnectTimeoutError as err:
-            print("Timeout connecting to device: {0}".format(err))
-        except Exception as err:
-            print("Error connecting to device: {0}".format(err))
+    # Establish connection to router
+    try:
+        dev = Device(host=fqdn, passwd="Ansible01@", ssh_config="/home/ubuntu/.ssh/config")
+        dev.open()
 
         # Fetch hw info
-        try:
-            # For line_cards table
-            _fpcs = FpcHwTable(dev)
-            _fpcs.get()
-            for key, value in _fpcs.items():
-                line_cards.append( { "position": int(key.replace("FPC ", "")), "model": value[4][1], "node_id": dev_id } )
-
-            # For ports table
-            _ports = PhyPortTable(dev)
-            _ports.get()
-            for key, value in _ports.items():
-                line_card_position = int(key[3])
-                speed = PORT_SPEEDS[key[:2]]
-                ports.append( { "name": key[-3:], "speed": speed, "<line_card_position>": line_card_position } )
-
-        except Exception as err:
-            print("Error reading hardware information for {1}: {0}".format(err, devname))
-
+        line_cards = []
+        ports = []
+
+        # For line_cards table
+        _fpcs = FpcHwTable(dev)
+        _fpcs.get()
+        for key, value in _fpcs.items():
+            line_cards.append( { "position": int(key.replace("FPC ", "")), "model": value[4][1], "node_id": fqdn } )
+
+        # For ports table
+        _ports = PhyPortTable(dev)
+        _ports.get()
+        for key, value in _ports.items():
+            line_card_position = int(key[3])
+            ports.append( { "name": key[-3:], "speed": key[:2], "<line_card_position>": line_card_position } )
+
+        return { "node": fqdn, "line_cards": line_cards, "ports": ports }
+
+    except ConnectError as err:
+        print("Cannot connect to device: {0}".format(err))
+    except ConnectTimeoutError as err:
+        print("Timeout connecting to device: {0}".format(err))
+    except Exception as err:
+        print("Error reading hardware information for {1}: {0}".format(err, fqdn))
+
+    finally:
         dev.close()
-
-    print("\nNODES")
-    print(json.dumps(nodes, indent=4))
-    print("\nLINE CARDS")
-    print(json.dumps(line_cards, indent=4))
-    print("\nPORTS")
-    print(json.dumps(ports, indent=4))
-
-load_router()
-