diff --git a/package.json b/package.json
index d4045bf..2249138 100644
--- a/package.json
+++ b/package.json
@@ -5,7 +5,7 @@
   "main": "src/server.js",
   "scripts": {
     "start": "node src/server.js",
-    "test": "mocha spec/**/*.spec.js",
+    "test": "LOG_LEVEL=error mocha spec/**/*.spec.js",
     "test:dev": "mocha -w spec/**/*.spec.js",
     "lint": "eslint ."
   },
diff --git a/spec/redis.spec.js b/spec/redis.spec.js
index e607e5c..823a047 100644
--- a/spec/redis.spec.js
+++ b/spec/redis.spec.js
@@ -20,6 +20,19 @@
       }
     }
   };
+
+  const mockRequest = {
+    get: () => {
+      return {
+        end: (fn) => {
+          fn(null, {body: [
+            {name: 'Slice'},
+            {name: 'Site'}
+          ]});
+        }
+      }
+    }
+  }
   const channelName = 'Site';
 
   describe('The event system', () => {
@@ -38,6 +51,9 @@
       // Override the redis module with our fakeredis instance
       mockery.registerMock('redis', fakeredis);
 
+      // Override the superagent module with our mockRequest instance
+      mockery.registerMock('superagent', mockRequest);
+
       // mock the socketIo client to have a spy
       mockery.registerMock('./websocket.js', mockSocket);
 
diff --git a/src/controllers/redis.js b/src/controllers/redis.js
index 0bcebe3..1ed8a20 100644
--- a/src/controllers/redis.js
+++ b/src/controllers/redis.js
@@ -2,14 +2,16 @@
   'use strict';
   
   const socketIo = require('./websocket.js');
-  const config = require('../config/config.js').redis;
+  const config = require('../config/config.js');
   const logger = require('../config/logger.js');
+  const request = require('superagent');
   const socket = socketIo.get();
+  const _ = require('lodash');
 
   var redis = require('redis');
   var client = redis.createClient({
-    host: config.host,
-    port: config.port
+    host: config.redis.host,
+    port: config.redis.port
   });
 
   client.on('error', function (err) {
@@ -38,20 +40,21 @@
       msg = message;
       socket.emit('event', {model: channel, msg: msg});
     }
-
   });
 
-  const watchedCollections = [
-    'Instance',
-    'Node',
-    'Service',
-    'Slice',
-    'Site',
-    'Subscriber',
-    'Tenant'
-  ];
-
-  watchedCollections.forEach(c => {
-    client.subscribe(c);
+  // dynamically load Model names to listen on channels
+  // NOTE how to listen for models defined by services?
+  request.get(`${config.xos.host}:${config.xos.port}/api/utility/modeldefs`)
+  .end((err, res) => {
+    if (err) {
+      logger.log('error', err);
+    }
+    if (res) {
+      const models = _.map(res.body, i => i.name);
+      _.forEach(models, c => {
+        client.subscribe(c);
+      });
+    }
   });
+
 })();
\ No newline at end of file
