diff --git a/inventory_provider/db/ims_data.py b/inventory_provider/db/ims_data.py
index 9ace88d97ab3b151b2d6203f0a518a9303f24827..cc397d070bca03dd97a684c2e13f32d958194a12 100644
--- a/inventory_provider/db/ims_data.py
+++ b/inventory_provider/db/ims_data.py
@@ -119,8 +119,10 @@ def otrs_get_customer_company_rows(ds):
         yield [customer['Name'], customer['FullName'], '', '', '', '', '', '']
 
 
-def otrs_get_users_as_customers(ds):
-    yielded = False
+def otrs_get_customer_users_rows(ds):
+    yield ['email', 'username', 'customer_id', 'customer_id_2', 'title',
+           'firstname', 'lastname', 'phone', 'fax', 'mobile', 'street', 'zip',
+           'city', 'country', 'comments']
     type_priority = {
         RelateType.SITE: 1,
         RelateType.GROUP: 2,
@@ -130,20 +132,58 @@ def otrs_get_users_as_customers(ds):
         RelateType.CUSTOMER: 6,
     }
 
+    # TODO - check the rules for prioritisation once model has been confirmed
     def _choose_customer_user(cu_1, cu_2):
         if not cu_2 or type_priority.get(cu_1['type'], 0) > type_priority.get(
                 cu_2['type'], 0):
             return cu_1
         return cu_2
 
+    # TODO - check the rules for validation once model has been confirmed
     def _is_valid_customer(cus):
+        # commented out as no contact details are in IMS
         # if not cus['email']:
         #     return False
         return True
 
+    # TODO - check this rule for getting the customer_id2 once model has been confirmed  # noqa
+    def _get_customer_id2(cus):
+        if cus['CustomerType'] and cus['CustomerType']['Name'] == 'NREN NOC':
+            return True
+        return ''
+
     for customer in ds.get_all_entities(
             'Customer',
-            ims.CUSTOMER_PROPERTIES['CustomerRelatedContacts']):
+            [
+                ims.CUSTOMER_PROPERTIES['CustomerRelatedContacts'],
+                ims.CUSTOMER_PROPERTIES['CustomerType']
+            ]):
+        # Org as User
+        org_customer = OrderedDict({
+            'type': customer['CustomerType']['Name'] if customer[
+                'CustomerType'] else '',
+            'email': customer['AccountEmail'],
+            'username': customer['AccountEmail'],
+            'customer_id': customer['Name'],
+            'customer_id_2': _get_customer_id2(customer),
+            'title': '',
+            'firstname': customer['Name'],
+            'lastname': '-',
+            'phone': '',
+            'fax': '',
+            'mobile': '',
+            'street': '',
+            'zip': '',
+            'city': '',
+            'country': '',
+            'comments': ''
+        })
+        if _is_valid_customer(org_customer):
+            del org_customer['type']
+            yield org_customer.values()
+        # end of Org as User
+
+        # Contacts as Users
         if customer['CustomerRelatedContacts']:
 
             customer_user = None
@@ -155,13 +195,13 @@ def otrs_get_users_as_customers(ds):
                     'email': contact['Contact']['Mail'],
                     'username': contact['Contact']['Mail'],  # TODO if tal_id is going to be present use that # noqa
                     'customer_id': customer['Name'],
-                    'customer_id_2': '',  # TODO populate - need the rules for this # noqa
-                    'title': contact['Contact']['PreFix'],  # TODO - double check this is the right field # noqa
+                    'customer_id_2': _get_customer_id2(customer),
+                    'title': '',
                     'firstname': contact['Contact']['Name'],
                     'lastname': contact['Contact']['LastName'],
-                    'phone': contact['Contact']['Phone'],
-                    'fax': contact['Contact']['Fax'],
-                    'mobile': contact['Contact']['Mobile'],
+                    'phone': '',
+                    'fax': '',
+                    'mobile': '',
                     'street': '',
                     'zip': '',
                     'city': '',
@@ -177,23 +217,7 @@ def otrs_get_users_as_customers(ds):
             if customer_user:
                 del customer_user['type']
                 yield customer_user.values()
-                yielded = True
-
-    # Is there a better way to do this?
-    if not yielded:
-        return []
-
-
-def otrs_get_orgs_as_customers(ds):
-    return []
-
-
-def otrs_get_customer_users_rows(ds):
-    yield ['email', 'username', 'customer_id', 'customer_id_2', 'title',
-           'firstname', 'lastname', 'phone', 'fax', 'mobile', 'street', 'zip',
-           'city', 'country', 'comments']
-    yield from otrs_get_users_as_customers(ds)
-    yield from otrs_get_orgs_as_customers(ds)
+        # end of Contact as User
 
 
 if __name__ == '__main__':