diff --git a/.gitattributes b/.gitattributes
index 9351202a62521c71ed19263d77ace10f3b1ddcb8..312a2c5f0d9d53c78d6fe750b0aaca66c896cf4f 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -5124,6 +5124,8 @@ SAS/ResourceAssignment/ResourceAssignmentEditor/test/test_webservice.run -text
 SAS/ResourceAssignment/ResourceAssignmentEditor/test/test_webservice.sh -text
 SAS/ResourceAssignment/ResourceAssignmentEstimator/CMakeLists.txt -text
 SAS/ResourceAssignment/ResourceAssignmentEstimator/__init__.py -text
+SAS/ResourceAssignment/ResourceAssignmentEstimator/config.py -text
+SAS/ResourceAssignment/ResourceAssignmentEstimator/raestimatorservice.ini -text
 SAS/ResourceAssignment/ResourceAssignmentEstimator/resource_estimators/CMakeLists.txt -text
 SAS/ResourceAssignment/ResourceAssignmentEstimator/resource_estimators/__init__.py -text
 SAS/ResourceAssignment/ResourceAssignmentEstimator/resource_estimators/base_resource_estimator.py -text
diff --git a/SAS/ResourceAssignment/ResourceAssignmentEstimator/CMakeLists.txt b/SAS/ResourceAssignment/ResourceAssignmentEstimator/CMakeLists.txt
index 80f77602ac6cefd555920f952879bdc9d46b3750..ea2d8d4c8ddff636568439f305c1cf1967cd31de 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentEstimator/CMakeLists.txt
+++ b/SAS/ResourceAssignment/ResourceAssignmentEstimator/CMakeLists.txt
@@ -1,6 +1,6 @@
 # $Id: CMakeLists.txt  $
 
-lofar_package(ResourceAssignmentEstimator 1.0 DEPENDS PyMessaging)
+lofar_package(ResourceAssignmentEstimator 1.0 DEPENDS PyMessaging PyCommon pyparameterset)
 
 lofar_find_package(Python 2.6 REQUIRED)
 include(PythonInstall)
@@ -8,9 +8,17 @@ include(PythonInstall)
 set(_py_files
   __init__.py
   service.py
+  config.py
 )
 
 python_install(${_py_files} DESTINATION lofar/sas/resourceassignment/resourceassignmentestimator)
 
+lofar_add_bin_scripts(raestimatorservice)
+
+# supervisord config files
+install(FILES
+  raestimatorservice.ini
+  DESTINATION etc/supervisord.d)
+
 add_subdirectory(test)
 add_subdirectory(resource_estimators)
diff --git a/SAS/ResourceAssignment/ResourceAssignmentEstimator/config.py b/SAS/ResourceAssignment/ResourceAssignmentEstimator/config.py
new file mode 100644
index 0000000000000000000000000000000000000000..fa39d8db77108f72fd79859b4665776a6dcf4c4a
--- /dev/null
+++ b/SAS/ResourceAssignment/ResourceAssignmentEstimator/config.py
@@ -0,0 +1,6 @@
+#!/usr/bin/python
+# $Id$
+
+DEFAULT_BUSNAME = 'lofar.ra.command'
+DEFAULT_SERVICENAME = 'ResourceEstimation'
+
diff --git a/SAS/ResourceAssignment/ResourceAssignmentEstimator/raestimatorservice.ini b/SAS/ResourceAssignment/ResourceAssignmentEstimator/raestimatorservice.ini
new file mode 100644
index 0000000000000000000000000000000000000000..49a714aedeb4fafed6080c9da073231659805838
--- /dev/null
+++ b/SAS/ResourceAssignment/ResourceAssignmentEstimator/raestimatorservice.ini
@@ -0,0 +1,8 @@
+[program:raestimatorservice]
+command=/bin/bash -c 'source $LOFARROOT/lofarinit.sh;raestimatorservice'
+user=lofarsys
+stopsignal=INT ; KeyboardInterrupt
+stopasgroup=true ; bash does not propagate signals
+stdout_logfile=%(program_name)s.log
+redirect_stderr=true
+stderr_logfile=NONE
diff --git a/SAS/ResourceAssignment/ResourceAssignmentEstimator/resource_estimators/CMakeLists.txt b/SAS/ResourceAssignment/ResourceAssignmentEstimator/resource_estimators/CMakeLists.txt
index 6da3a53d3097860413decddfa0f943d8105cc1e6..fef9a42fa2e4d43ae575053eaec3bfdbc98e81e4 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentEstimator/resource_estimators/CMakeLists.txt
+++ b/SAS/ResourceAssignment/ResourceAssignmentEstimator/resource_estimators/CMakeLists.txt
@@ -8,6 +8,7 @@ set(_py_files
     calibration_pipeline.py
     image_pipeline.py
     pulsar_pipeline.py
+    parameterset.py
 )
 
 python_install(${_py_files} DESTINATION lofar/sas/resourceassignment/resourceassignmentestimator/resource_estimators)
diff --git a/SAS/ResourceAssignment/ResourceAssignmentEstimator/resource_estimators/__init__.py b/SAS/ResourceAssignment/ResourceAssignmentEstimator/resource_estimators/__init__.py
index 326fee9b4365a20bd31a63cf01b6097d4950ca79..1fe0939db5a57f672ad2b5c4a524563b4c16c3b5 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentEstimator/resource_estimators/__init__.py
+++ b/SAS/ResourceAssignment/ResourceAssignmentEstimator/resource_estimators/__init__.py
@@ -1,7 +1,7 @@
 """ resource_estimators __init__()
 """
 
-from parameterset import Parameterset
+from parameterset import ParameterSet
 from observation import ObservationResourceEstimator
 from longbaseline_pipeline import LongBaselinePipelineResourceEstimator
 from calibration_pipeline import CalibrationPipelineResourceEstimator
diff --git a/SAS/ResourceAssignment/ResourceAssignmentEstimator/service.py b/SAS/ResourceAssignment/ResourceAssignmentEstimator/service.py
index aab690b2c562a772d28fb26eb39cd2599e84b8b2..a1d98957d21f1ead0f0b7abdd01466df350fd62c 100644
--- a/SAS/ResourceAssignment/ResourceAssignmentEstimator/service.py
+++ b/SAS/ResourceAssignment/ResourceAssignmentEstimator/service.py
@@ -8,14 +8,12 @@ Simple Service listening
 import logging
 from lofar.messaging import Service
 from lofar.messaging.Service import MessageHandlerInterface
-from lofar.common.util import waitForInterrupt
 
 from lofar.sas.resourceassignment.resourceassignmentestimator.resource_estimators import *
+from lofar.sas.resourceassignment.resourceassignmentestimator.config import DEFAULT_BUSNAME, DEFAULT_SERVICENAME
 
-logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s', level=logging.INFO)
 logger = logging.getLogger(__name__)
 
-
 class ResourceEstimatorHandler(MessageHandlerInterface):
     def __init__(self, **kwargs):
         super(ResourceEstimatorHandler, self).__init__(**kwargs)
@@ -45,14 +43,32 @@ class ResourceEstimatorHandler(MessageHandlerInterface):
         return result
 
 
-def createService(busname='lofarbus'):
-    return Service('ResourceEstimation',
-                   ResourceEstimatorHandler,
+def createService(busname=DEFAULT_BUSNAME, servicename=DEFAULT_SERVICENAME, broker=None):
+    return Service(servicename=servicename,
+                   servicehandler=ResourceEstimatorHandler,
                    busname=busname,
-                   numthreads=1)
+                   broker=broker,
+                   numthreads=4)
 
 def main():
-    with createService(busname='lofarbus'):
+    from optparse import OptionParser
+    from lofar.messaging import setQpidLogLevel
+    from lofar.common.util import waitForInterrupt
+
+    # Check the invocation arguments
+    parser = OptionParser("%prog [options]",
+                          description='runs the resourceassigner service')
+    parser.add_option('-q', '--broker', dest='broker', type='string', default=None, help='Address of the qpid broker, default: localhost')
+    parser.add_option("-b", "--busname", dest="busname", type="string", default=DEFAULT_BUSNAME, help="Name of the bus exchange on the qpid broker, default: %s" % DEFAULT_BUSNAME)
+    parser.add_option("-s", "--servicename", dest="servicename", type="string", default=DEFAULT_SERVICENAME, help="Name for this service, default: %s" % DEFAULT_SERVICENAME)
+    parser.add_option('-V', '--verbose', dest='verbose', action='store_true', help='verbose logging')
+    (options, args) = parser.parse_args()
+
+    setQpidLogLevel(logging.INFO)
+    logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s',
+                        level=logging.DEBUG if options.verbose else logging.INFO)
+
+    with createService(busname=options.busname, servicename=options.servicename, broker=options.broker):
         waitForInterrupt()
 
 if __name__ == '__main__':