diff --git a/inventory_provider/snmp.py b/inventory_provider/snmp.py
index 5370a7984fe3f0473fc7eed1f2611bc89a4f50a9..c204d2ec681caec930cb0c7e735fb97f7b960f29 100644
--- a/inventory_provider/snmp.py
+++ b/inventory_provider/snmp.py
@@ -19,6 +19,26 @@ class SNMPWalkError(ConnectionError):
     pass
 
 
+def _cast_snmp_value(value):
+    """
+    Cast strings to the simplest native type.
+
+    :param value:
+    :return:
+    """
+    try:
+        return int(value)
+    except (ValueError, TypeError):
+        try:
+            return float(value)
+        except (ValueError, TypeError):
+            try:
+                return str(value)
+            except (ValueError, TypeError):
+                pass
+    return value
+
+
 def _v6address_oid2str(dotted_decimal):
     hex_params = []
     for dec in re.split(r'\.', dotted_decimal):
@@ -130,13 +150,13 @@ def get_peer_state_info(hostname, community):
             local = ipaddress.ip_address(_v6bytes(splits[1:17]))
             remote = ipaddress.ip_address(_v6bytes(splits[18:]))
         else:
-            logger.error()
+            logger.error(f'expected v4 or v6 peering, got type {splits[0]}')
+            assert False
 
         yield {
             'local': local.exploded,
             'remote': remote.exploded,
-            'oid': ifc['oid'],
-            'value': ifc['value'],
+            'oid': ifc['oid']
         }
 
 ############################
@@ -146,29 +166,6 @@ def _construct_object_types(oids):
     return [ObjectType(ObjectIdentity(oid)) for oid in oids]
 
 
-def _cast_snmp_value(value):
-    """
-    Boilerplate method for explicitly casting returned snmp value types.
-
-    Copied from the tutorial - negligible performance
-    impact since in our case we'll always return in the
-    first condition.  This method is in fact totally useless
-    and should be removed.
-
-    :param value:
-    :return:
-    """
-    try:
-        return int(value)
-    except (ValueError, TypeError):
-        try:
-            return float(value)
-        except (ValueError, TypeError):
-            try:
-                return str(value)
-            except (ValueError, TypeError):
-                pass
-    return value
 
 
 def _fetch(handler):
@@ -188,7 +185,10 @@ def _fetch(handler):
             return
 
         for oid, value in var_binds:
-            yield [str(oid), _cast_snmp_value(value)]
+            oid = str(oid)
+            if not oid.startswith('.'):
+                oid = f'.{oid}'
+            yield [oid, _cast_snmp_value(value)]
 
 
 def get(
@@ -216,18 +216,27 @@ def get(
 
 if __name__ == '__main__':
 
+
+    # HOSTNAME = 'mx1.ams.nl.geant.net'
+    HOSTNAME = 'mx1.kau.lt.geant.net'
+    COMMUNITY = '0pBiFbD'
     import json
 
     # for x in get_peer_state_info('mx1.kau.lt.geant.net', '0pBiFbD'):
     #     print(x)
 
-    peerings = get_peer_state_info('mx1.kau.lt.geant.net', '0pBiFbD')
-    # print(json.dumps(list(peerings), indent=2, sort_keys=True))
-
-    oids = [x['oid'] for x in peerings]
-    print(oids)
-    data = dict()
-    for i in range(0, len(oids), 3):
-        data.update(get('mx1.kau.lt.geant.net', '0pBiFbD', oids[i:i+3]))
-
-    print(json.dumps(data, indent=2))
+    peerings = get_peer_state_info(HOSTNAME, COMMUNITY)
+    print(json.dumps(list(peerings), indent=2, sort_keys=True))
+
+    # oids = [x['oid'] for x in peerings]
+    # print(oids)
+    # data = dict()
+    # for i in range(0, len(oids), 3):
+    #     data.update(get(HOSTNAME, COMMUNITY, oids[i:i+3]))
+    #
+    # assert all([v for v in data.values()])
+    # print(json.dumps(data, indent=2))
+
+    # import json
+    # z = get_router_snmp_indexes('mx1.kau.lt.geant.net', '0pBiFbD')
+    # print(json.dumps(list(z), indent=2))
\ No newline at end of file