diff --git a/compose/TODOS.md b/compose/TODOS.md
index e69de29..46ce3cb 100644
--- a/compose/TODOS.md
+++ b/compose/TODOS.md
@@ -0,0 +1,42 @@
+= Next Steps Planned
+
+- [Z] Adding health-check to voltha (and consul)
+- [Z] Adding membership tracking
+- [Z] Adding leader election
+- [Z] Work out a load sharding mechanism
+
+- [N] Add flake8 support (make or part of build)
+- [N] Coverage support and have coverage report hooked up to make
+
+- [Z] Add documentation for the existing docker-compose based system
+- [?] Add system test for the above
+
+- [N] Move in the openflow (lexi) code base
+- [N] Move in the EOAM and/or Tibit TAL
+- [N] Decide where olt-oftest should live: keep as external package
+      or replicate
+
+- [N] make system-test:
+  - fire up a docker ensable using docker-compose
+  - optionally configure network access to device(s)
+  - make sure olt-ofagent test code is available
+  - execute relevant test(s)
+
+- Mock adapter
+
+
+= Next hackaton
+
+- [?] Flash out internal APIs
+
+
+= Architectural questions
+
+- Place a set of internal queues between the layers, or just use
+  direct Twisted async calls
+- Primary data format for internal abstract API in/out data:
+  - Type-specific Python classes with self-contained schema enforcement
+  - "JSON data" == nested Python OrederDict; schema enforcement is
+    implemented in key points in the architecture
+
+
diff --git a/voltha/coordinator.py b/voltha/coordinator.py
index e893d96..1fa2b18 100644
--- a/voltha/coordinator.py
+++ b/voltha/coordinator.py
@@ -16,6 +16,13 @@
 
 """ Consul-based coordinator services """
 
+# TODO move this to the consul.twisted async client once it is available.
+# Note:
+# We use https://github.com/cablehead/python-consul for consul client. It's master
+# branch already provides support for Twisted, but the latest released version (0.6.1)
+# was cut before twisted support was added. So keep an eye on when 0.6.2 comes out and
+# move over to the twisted interface once it's available.
+
 from consul import Consul, ConsulException
 from requests import ConnectionError
 from structlog import get_logger
@@ -30,12 +37,18 @@
     CONNECT_RETRY_INTERVAL_SEC = 1
     RETRY_BACKOFF = [0.05, 0.1, 0.2, 0.5, 1, 2, 5]
 
-    def __init__(self, internal_host_address, external_host_address, instance_id, consul='localhost:8500'):
+    def __init__(self,
+                 internal_host_address,
+                 external_host_address,
+                 instance_id,
+                 rest_port,
+                 consul='localhost:8500'):
 
         self.retries = 0
         self.instance_id = instance_id
         self.internal_host_address = internal_host_address
         self.external_host_address = external_host_address
+        self.rest_port = rest_port
 
         self.log = get_logger()
         self.log.info('initializing-coordinator')
@@ -94,6 +107,7 @@
                 kw = dict(
                     name='voltha-%s' % self.instance_id,
                     address=self.internal_host_address,
+                    port=self.rest_port
                 )
                 self.consul.agent.service.register(**kw)
                 self.log.info('registered-with-consul', **kw)
diff --git a/voltha/main.py b/voltha/main.py
index 679dbb5..188e6aa 100755
--- a/voltha/main.py
+++ b/voltha/main.py
@@ -24,17 +24,18 @@
 
 from structlog_setup import setup_logging
 from coordinator import Coordinator
-from northbound.rest.healt_check import init_site
-
+from northbound.rest.health_check import init_rest_service
+from nethelpers import get_my_primary_interface, get_my_primary_local_ipv4
 
 defs = dict(
     consul=os.environ.get('CONSUL', 'localhost:8500'),
     instance_id=os.environ.get('INSTANCE_ID', os.environ.get('HOSTNAME', '1')),
     config=os.environ.get('CONFIG', './voltha.yml'),
-    interface=os.environ.get('INTERFACE', 'eth0'),
-    internal_host_address=os.environ.get('INTERNAL_HOST_ADDRESS', 'localhost'),
-    external_host_address=os.environ.get('EXTERNAL_HOST_ADDRESS', 'localhost'),
-    fluentd=os.environ.get('FLUENTD', None)
+    interface=os.environ.get('INTERFACE', get_my_primary_interface()),
+    internal_host_address=os.environ.get('INTERNAL_HOST_ADDRESS', get_my_primary_local_ipv4()),
+    external_host_address=os.environ.get('EXTERNAL_HOST_ADDRESS', get_my_primary_local_ipv4()),
+    fluentd=os.environ.get('FLUENTD', None),
+    rest_port=os.environ.get('REST_PORT', 8880),
 )
 
 
@@ -82,6 +83,10 @@
     parser.add_argument('-N', '--no-heartbeat', dest='no_heartbeat', action='store_true', default=False,
                         help='do not emit periodic heartbeat log messages')
 
+    parser.add_argument('-R', '--rest-port', dest='rest_port', action='store', type=int,
+                        default=defs['rest_port'],
+                        help='port number for the rest service (default: %d)' % defs['rest_port'])
+
     parser.add_argument('-q', '--quiet', dest='quiet', action='store_true', default=False,
                         help="suppress debug and info logs")
 
@@ -116,9 +121,10 @@
     coordinator = Coordinator(
         internal_host_address=args.internal_host_address,
         external_host_address=args.external_host_address,
+        rest_port=args.rest_port,
         instance_id=args.instance_id,
         consul=args.consul)
-    init_site()
+    init_rest_service(args.rest_port)
     log.info('started-internal-services')
 
 
diff --git a/voltha/northbound/rest/health_check.py b/voltha/northbound/rest/health_check.py
index bd54b9d..ea5bff9 100644
--- a/voltha/northbound/rest/health_check.py
+++ b/voltha/northbound/rest/health_check.py
@@ -36,7 +36,7 @@
         return Site(self.app.resource())
 
 
-def init_site():  # TODO need to be moved to a shared file across all resources
+def init_rest_service(port):  # TODO need to be moved to a shared file across all resources
     hc = HealthCheck()
-    endpoint = endpoints.TCP4ServerEndpoint(reactor, 8880)
+    endpoint = endpoints.TCP4ServerEndpoint(reactor, port)
     endpoint.listen(hc.get_site())
