diff --git a/README.md b/README.md
index 6b54a5ee028b52d2f4505c5c36e7aaa15f8c72ba..b276b37c9e62518e3224a3702efd253fb9f371b3 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@ Public access server providing a REST API for the in-situ pipeline.
 
 To generate execute this from the projects root dir:
 ```
-java -jar <path/to/swagger-codegen-cli.2.4.8.jar> generate -i access_node/swagger/swagger.yaml -l python-flask -c config.json
+java -jar swagger-codegen-cli-2.4.8.jar generate -i access_node/swagger/swagger.yaml -l python-flask -c config.json
 ```
 # Swagger generated server
 
diff --git a/access_node/controllers/arbor_controller.py b/access_node/controllers/arbor_controller.py
index 7ca4b494e758190be4d8df96cd8582a8e2c2b274..3f309b728804739b0e5116149eb10cc98380e1b4 100644
--- a/access_node/controllers/arbor_controller.py
+++ b/access_node/controllers/arbor_controller.py
@@ -1,37 +1,50 @@
 import connexion
 import six
 
+from access_node.models.arbor_cell_properties import ArborCellProperties  # noqa: E501
 from access_node.models.arbor_measurement import ArborMeasurement  # noqa: E501
-from access_node.models.arbor_neuron_properties import ArborNeuronProperties  # noqa: E501
 from access_node.models.simulation_time_info import SimulationTimeInfo  # noqa: E501
 from access_node.models.spikes import Spikes  # noqa: E501
 from access_node import util
 
 
-def arbor_get_attributes():  # noqa: E501
-    """Retrieves a list of measurable attributes
+def arbor_get_cell_ids():  # noqa: E501
+    """Retrieves the list of all cell ids.
 
      # noqa: E501
 
 
-    :rtype: List[str]
+    :rtype: List[int]
     """
     return 'do some magic!'
 
 
-def arbor_get_measurements(attribute, _from=None, to=None, neuron_ids=None, offset=None, limit=None):  # noqa: E501
-    """Retrieves the measurements for given attribute and neuron_ids (optional).
+def arbor_get_cell_properties(neuron_ids=None):  # noqa: E501
+    """Retrieves the properties of the specified cells.
+
+     # noqa: E501
+
+    :param neuron_ids: A list of cell IDs queried for properties.
+    :type neuron_ids: List[int]
+
+    :rtype: List[ArborCellProperties]
+    """
+    return 'do some magic!'
+
+
+def arbor_get_measurements(attribute, measurement_point_id=None, _from=None, to=None, offset=None, limit=None):  # noqa: E501
+    """Retrieves the measurements for given measurement points (optional).
 
      # noqa: E501
 
     :param attribute: The attribute to query (e.g., &#39;V_m&#39; for the membrane potential)
     :type attribute: str
+    :param measurement_point_id: A list of measurement point ids queried for data.
+    :type measurement_point_id: List[int]
     :param _from: The start time (including) to be queried.
     :type _from: float
     :param to: The end time (excluding) to be queried.
     :type to: float
-    :param neuron_ids: A list of GIDs queried for spike data.
-    :type neuron_ids: List[int]
     :param offset: The offset into the result.
     :type offset: int
     :param limit: The maximum of entries to be result.
@@ -42,30 +55,6 @@ def arbor_get_measurements(attribute, _from=None, to=None, neuron_ids=None, offs
     return 'do some magic!'
 
 
-def arbor_get_neuron_ids():  # noqa: E501
-    """Retrieves the list of all neuron ids.
-
-     # noqa: E501
-
-
-    :rtype: List[int]
-    """
-    return 'do some magic!'
-
-
-def arbor_get_neuron_properties(neuron_ids=None):  # noqa: E501
-    """Retrieves the properties of the specified neurons.
-
-     # noqa: E501
-
-    :param neuron_ids: A list of neuron IDs queried for properties.
-    :type neuron_ids: List[int]
-
-    :rtype: List[ArborNeuronProperties]
-    """
-    return 'do some magic!'
-
-
 def arbor_get_simulation_time_info():  # noqa: E501
     """Retrieves simulation time information.
 
@@ -78,7 +67,7 @@ def arbor_get_simulation_time_info():  # noqa: E501
 
 
 def arbor_get_spikes(_from=None, to=None, gids=None, offset=None, limit=None):  # noqa: E501
-    """Retrieves the spikes for the given simulation steps (optional) and GIDS (optional).
+    """Retrieves the spikes for the given simulation steps (optional) and cells (optional).
 
      # noqa: E501
 
@@ -86,7 +75,7 @@ def arbor_get_spikes(_from=None, to=None, gids=None, offset=None, limit=None):
     :type _from: float
     :param to: The end time (excluding) to be queried.
     :type to: float
-    :param gids: A list of GIDs queried for spike data.
+    :param gids: A list of cells queried for spike data.
     :type gids: List[int]
     :param offset: The offset into the result.
     :type offset: int
diff --git a/access_node/controllers/nest_controller.py b/access_node/controllers/nest_controller.py
index ae87ae071a66caf32bfb164c96624ce73a3abd72..e7acefcd074174023062b3f297ba995f520997a7 100644
--- a/access_node/controllers/nest_controller.py
+++ b/access_node/controllers/nest_controller.py
@@ -24,7 +24,7 @@ def nest_get_gids():  # noqa: E501
 
 
 def nest_get_gids_in_population(population_id):  # noqa: E501
-    """Retrieves the list of all neuron IDs.
+    """Retrieves the list of all neuron IDs within the population.
 
      # noqa: E501
 
@@ -40,7 +40,7 @@ def nest_get_gids_in_population(population_id):  # noqa: E501
 
 def nest_get_multimeter_info():  # noqa: E501
     """Retreives the available multimeters and their properties.
-
+    
      # noqa: E501
 
 
@@ -51,7 +51,7 @@ def nest_get_multimeter_info():  # noqa: E501
 
 
 def nest_get_multimeter_measurements(multimeter_id, attribute, _from=None, to=None, gids=None, offset=None, limit=None):  # noqa: E501
-    """Retrieves the measurements for a multimeter (optional) and GIDS (optional).
+    """Retrieves the measurements for a multimeter, attribute and GIDS (optional).
 
      # noqa: E501
 
@@ -95,20 +95,22 @@ def nest_get_multimeter_measurements(multimeter_id, attribute, _from=None, to=No
 
     init = True
     sim_times = []
-    measurement = MultimeterMeasurement([],[],[])
+    measurement = MultimeterMeasurement([], [], [])
     for node in nodes.simulation_nodes:
         response = requests.get(
             'http://'+node+'/multimeter_measurement', params={"multimeter_id": multimeter_id, "attribute": attribute, "_from": _from, "to": to, "gids": gids}).json()
         if init:
             sim_times = response['simulation_times']
-            measurement = MultimeterMeasurement(sim_times, gids, [None for x in range(0,(len(sim_times)*len(gids)))])
+            measurement = MultimeterMeasurement(
+                sim_times, gids, [None for x in range(0, (len(sim_times)*len(gids)))])
             init = False
         for x in range(len(response['gids'])):
             gid = response['gids'][x]
             index = measurement.gids.index(gid)
             index_offset = index * len(sim_times)
             for y in range(len(sim_times)):
-                measurement.values[index_offset+y] = response['values'][x*len(sim_times)+y]
+                measurement.values[index_offset +
+                                   y] = response['values'][x*len(sim_times)+y]
 
     # offset and limit
     if (offset is None):
@@ -116,7 +118,8 @@ def nest_get_multimeter_measurements(multimeter_id, attribute, _from=None, to=No
     if (limit is None or (limit + offset) > len(measurement.gids)):
         limit = len(measurement.gids) - offset
     measurement.gids = measurement.gids[offset:offset+limit]
-    measurement.values = measurement.values[offset*len(sim_times):(offset+limit)*len(sim_times)]
+    measurement.values = measurement.values[offset *
+                                            len(sim_times):(offset+limit)*len(sim_times)]
 
     return measurement
 
diff --git a/access_node/models/__init__.py b/access_node/models/__init__.py
index 16f5ea12ce0c998dbd68efe54a47bb630bb1e57b..ce158d6d9dc1ffc64a2c353316802e72a3b02d81 100644
--- a/access_node/models/__init__.py
+++ b/access_node/models/__init__.py
@@ -3,8 +3,9 @@
 # flake8: noqa
 from __future__ import absolute_import
 # import models into model package
+from access_node.models.arbor_cell_properties import ArborCellProperties
 from access_node.models.arbor_measurement import ArborMeasurement
-from access_node.models.arbor_neuron_properties import ArborNeuronProperties
+from access_node.models.measurement_point import MeasurementPoint
 from access_node.models.multimeter_info import MultimeterInfo
 from access_node.models.multimeter_info_inner import MultimeterInfoInner
 from access_node.models.multimeter_measurement import MultimeterMeasurement
diff --git a/access_node/swagger/swagger.yaml b/access_node/swagger/swagger.yaml
index adb0041ea4cd8cad030f11ec54dc9655692c3971..dd5f9578c001c8f742c3808220f42c11be0fe720 100644
--- a/access_node/swagger/swagger.yaml
+++ b/access_node/swagger/swagger.yaml
@@ -15,7 +15,7 @@ paths:
       tags:
       - "arbor"
       summary: "Retrieves the spikes for the given simulation steps (optional) and\
-        \ GIDS (optional)."
+        \ cells (optional)."
       operationId: "arbor_get_spikes"
       consumes:
       - "application/json"
@@ -36,7 +36,7 @@ paths:
         format: "double"
       - name: "gids"
         in: "query"
-        description: "A list of GIDs queried for spike data."
+        description: "A list of cells queried for spike data."
         required: false
         type: "array"
         items:
@@ -65,12 +65,12 @@ paths:
             type: "string"
             example: "Error message"
       x-swagger-router-controller: "access_node.controllers.arbor_controller"
-  /arbor/neuron_ids:
+  /arbor/cell_ids:
     get:
       tags:
       - "arbor"
-      summary: "Retrieves the list of all neuron ids."
-      operationId: "arbor_get_neuron_ids"
+      summary: "Retrieves the list of all cell ids."
+      operationId: "arbor_get_cell_ids"
       produces:
       - "application/json"
       parameters: []
@@ -92,7 +92,7 @@ paths:
     get:
       tags:
       - "arbor"
-      summary: "Retrieves the measurements for given attribute and neuron_ids (optional)."
+      summary: "Retrieves the measurements for given measurement points (optional)."
       operationId: "arbor_get_measurements"
       consumes:
       - "application/json"
@@ -104,6 +104,14 @@ paths:
         description: "The attribute to query (e.g., 'V_m' for the membrane potential)"
         required: true
         type: "string"
+      - name: "measurement_point_id"
+        in: "query"
+        description: "A list of measurement point ids queried for data."
+        required: false
+        type: "array"
+        items:
+          type: "integer"
+          format: "uint64"
       - name: "from"
         in: "query"
         description: "The start time (including) to be queried."
@@ -116,14 +124,6 @@ paths:
         required: false
         type: "number"
         format: "double"
-      - name: "neuron_ids"
-        in: "query"
-        description: "A list of GIDs queried for spike data."
-        required: false
-        type: "array"
-        items:
-          type: "integer"
-          format: "uint64"
       - name: "offset"
         in: "query"
         description: "The offset into the result."
@@ -167,18 +167,18 @@ paths:
             type: "string"
             example: "Error message"
       x-swagger-router-controller: "access_node.controllers.arbor_controller"
-  /arbor/neuron_properties:
+  /arbor/cell_properties:
     get:
       tags:
       - "arbor"
-      summary: "Retrieves the properties of the specified neurons."
-      operationId: "arbor_get_neuron_properties"
+      summary: "Retrieves the properties of the specified cells."
+      operationId: "arbor_get_cell_properties"
       produces:
       - "application/json"
       parameters:
       - name: "neuron_ids"
         in: "query"
-        description: "A list of neuron IDs queried for properties."
+        description: "A list of cell IDs queried for properties."
         required: false
         type: "array"
         items:
@@ -190,32 +190,7 @@ paths:
           schema:
             type: "array"
             items:
-              $ref: "#/definitions/ArborNeuronProperties"
-        400:
-          description: "Operation failed."
-          schema:
-            type: "string"
-            example: "Error message"
-      x-swagger-router-controller: "access_node.controllers.arbor_controller"
-  /arbor/attributes:
-    get:
-      tags:
-      - "arbor"
-      summary: "Retrieves a list of measurable attributes"
-      operationId: "arbor_get_attributes"
-      produces:
-      - "application/json"
-      parameters: []
-      responses:
-        200:
-          description: "Operation successful."
-          schema:
-            type: "array"
-            items:
-              type: "string"
-            example:
-            - "Voltage"
-            - "Resistance"
+              $ref: "#/definitions/ArborCellProperties"
         400:
           description: "Operation failed."
           schema:
@@ -430,7 +405,7 @@ paths:
     get:
       tags:
       - "nest"
-      summary: "Retrieves the measurements for a multimeter (optional) and GIDS (optional)."
+      summary: "Retreives the available multimeters and their properties."
       operationId: "nest_get_multimeter_info"
       consumes:
       - "application/json"
@@ -452,7 +427,7 @@ paths:
     get:
       tags:
       - "nest"
-      summary: "Retrieves the measurements for a multimeter (optional) and GIDS (optional)."
+      summary: "Retrieves the measurements for a multimeter, attribute and GIDS (optional)."
       operationId: "nest_get_multimeter_measurements"
       consumes:
       - "application/json"
@@ -517,7 +492,7 @@ paths:
     get:
       tags:
       - "nest"
-      summary: "Retrieves the list of all neuron IDs."
+      summary: "Retrieves the list of all neuron IDs within the population."
       operationId: "nest_get_gids_in_population"
       produces:
       - "application/json"
@@ -644,7 +619,19 @@ definitions:
       - 0.123
       - 0.123
       - 0.123
-  ArborNeuronProperties:
+  MeasurementPoint:
+    type: "object"
+    properties:
+      id:
+        type: "integer"
+        format: "uint64"
+      cell_id:
+        type: "integer"
+        format: "uint64"
+      position:
+        type: "number"
+        format: "double"
+  ArborCellProperties:
     type: "object"
     properties:
       neuron_id: