diff --git a/operations/subscriber.rst b/operations/subscriber.rst
index d3e3503..e7356ec 100644
--- a/operations/subscriber.rst
+++ b/operations/subscriber.rst
@@ -6,25 +6,25 @@
 ======================================
 
 Subscriber management includes workflows associated with provisioning new subscribers, removing
-existing subscribers, and associating subscribers with Virtual Connectivity Services (VCS).
+existing subscribers, and associating subscribers with slices.
 
 .. note::
     This section refers to a fully installed ROC GUI, properly secured and with Enterprises, Connectivity Services
     and Sites already configured by a ROC Administrator. The examples shown below are taken from an example
     configuration shipped with the ROC - the "MEGA Patch" (see :ref:`posting-the-mega-patch`)
 
-Provisioning a new UE
----------------------
+Provisioning a new Device
+-------------------------
 
-Before a UE can be granted connectivity service, it must first be provisioned. This step is normally
+Before a Device can be granted connectivity service, it must first be provisioned. This step is normally
 performed by Aether Operations.
 
-Each UE is assigned a PLMN and a set of security keys. Depending on the deployment scenario, these
-keys might be shared by several UEs, or they might be unique to each UE. The allocation of PLMNs and
+Each Device is assigned a PLMN and a set of security keys. Depending on the deployment scenario, these
+keys might be shared by several Devices, or they might be unique to each Device. The allocation of PLMNs and
 keys is currently performed manually by the Aether Operations team. This subscriber-related
 detail is configured via the SIM Management application, ``simapp``.
 
-``simapp.yaml`` needs to be adjusted to include the new UE IMSIs to the subscriber list. For example::
+``simapp.yaml`` needs to be adjusted to include the new Device IMSIs to the subscriber list. For example::
 
     # simapp.yaml
     # ...
@@ -62,13 +62,60 @@
 
 .. _configure_device_group:
 
-Configure Connectivity Service for a new UE
--------------------------------------------
+Configure Connectivity Service for a new Device
+-----------------------------------------------
 
-To receive connectivity service, a UE must be added to a DeviceGroup. An Enterprise is typically
+To receive connectivity service, the following steps are necessary:
+
+1. The Sim-Card for the Device must be created.
+2. The Device must be created and associated with the Sim-Card.
+3. The Device must be added to a Device-Group.
+
+Create the Sim-Card
+"""""""""""""""""""
+
+.. note::
+    If Simapp integration has been enabled on the site, then new Sim-Cards will automatically be
+    added to the Site as the Aether staff provisions the SIM Cards. In that case, the Sim-Card object
+    will already be present, and this section may be skipped.
+
+Start by bringing up the Sim-Card list:
+
+|SIMCARD-LIST|
+
+Click the add button to add a new Sim-Card:
+
+|SIMCARD-ADD|
+
+Select an Enterprise and Site where the Sim-Card will belong.
+Give the Sim-Card a unique ID. You must also set the IMSI for the Sim-Card, which should have
+been provided by Aether operations. All other fields, including the ICCID, are optional.
+Update and Commit the changes when you are finished.
+
+Creating the Device
+"""""""""""""""""""
+
+To create the Device, start by navigating to the Device list:
+
+|DEVICE-LIST|
+
+Click the add button to add a new Device:
+
+|DEVICE-ADD|
+
+Select an Enterprise and Site where the Device will belong.
+Give the Device a unique ID and select a Sim-Card to associate with the Device. It
+is allowed to create the Device with no Sim-Card, in case you want to associate the Sim-Card
+at a later date. All other fields, including the IMEI, are optional.
+Update and Commit the changes when you are finished.
+
+Adding the Device to the Device-Group
+"""""""""""""""""""""""""""""""""""""
+
+An Enterprise is typically
 organized into one or more Sites, each Site which may contain one or more DeviceGroups. Navigate
 to the appropriate DeviceGroup which is associated with the Site you wish to deploy on, and add
-the UE's IMSI to the DeviceGroup.
+the Device's IMSI to the DeviceGroup.
 
 The Site details can be seen by navigating to the Site list view.
 
@@ -79,36 +126,28 @@
 
 |DEVICEGROUP-LIST|
 
-In the DeviceGroup *New York POS* example above an UE ID Range **store** of
-**70-73** will mean the set of UE IDs (when the *format* specifier of the
-*starbucks-newyork* Site are applied to its *MCC*, *MNC* and *Enterprise*) of
-
-* 021032002000070 (021-032-002-000070)
-* 021032002000071
-* 021032002000072
-* 021032002000073
+In the Device-Group *New York POS* example above there are two devices listed,
+*till-pos-1* and *till-pos-2*.
 
 .. note::
-    For 4G service, a UE may participate in at most one DeviceGroup, and that DeviceGroup may
-    participate in at most one VCS. For 5G service, a UE can participate in many DeviceGroups, and each
-    DeviceGroup may participate in many VCSes.
+    For 4G service, a Device may participate in at most one DeviceGroup, and that DeviceGroup may
+    participate in at most one Slice. For 5G service, a Device can participate in many DeviceGroups, and each
+    DeviceGroup may participate in many Slices.
 
 Editing
 *******
 Edit the DeviceGroup by clicking on the Edit icon, and in the List page,
-adjust an existing UE ID range or create a new range (by clicking on the `+` icon).
+adjust an existing Device ID range or create a new range (by clicking on the `+` icon).
 
 |DEVICEGROUP-EDIT|
 
-The following restrictions apply
+The Device-Group page includes a list of each device that comprises the group. Each one
+may be individually enabled or disabled. Enable or disable is intended to temporarily
+limit connectivity; the device can also be permanently deleted. To add a device to the group, click the
+plus symbol next to the device, and then select an available device.
 
-#. The "end" value must be greater than or equal to the "start" value. If the 2 are equal then this constitutes
-   a range of size 1.
-#. The IMSI ID specified in "start" or "end" is relative to *MCC*, *MNC* and *Enterprise* of the Site.
-#. The maximum value of an IMSI ID is defined by the number of **S** characters in the `format` specifier of the Site.
-#. IMSI Ranges are contiguous ranges of IMSI IDs. To accommodate non contiguous IMSI IDs, add extra Ranges.
-#. IMSI Ranges can have a maximum span of 100 between "start" and "end" IMSI IDs. Break bigger spans in to many ranges.
-#. IMSI ranges within a DeviceGroup cannot not overlap.
+.. note::
+   While you are allowed to add a device to multiple device groups, this is not recommended.
 
 When the entries on the DeviceGroup edit page are valid the **Update** will become available
 
@@ -119,52 +158,23 @@
     The changes are not committed to **aether-config** until the **Basket** is committed.
     This allows several changes to be gathered together in one transaction and checked before committing.
 
-.. _committing:
+Remove Connectivity Service from an existing Device
+---------------------------------------------------
 
-Committing
-**********
-To commit the changes
+Using the ROC GUI, navigate to the DeviceGroup that contains the Device,
+then remove that Device from the list.
 
-#. Click on the **Basket** icon (2nd icon from top right) to see the Basket view
-#. Inspect the changes to be committed (optional)
-#. Click **Commit** to perform the commit
-#. Observe the response that's temporarily displayed that shows the success or failure of the commit
-
-|BASKETVIEW-NEWRANGE|
-
-History
-*******
-If you are an Aether ROC Administrator, you will be able to see the History of changes, from the *Basket View* by
-clicking on the **History** button.
-
-|BASKETVIEW-HISTORY|
-
-.. note:: The *History* button will only be visible if you are in the **AetherROCAdmin** group.
-
-Remove Connectivity Service from an existing UE
------------------------------------------------
-
-Using the ROC GUI, navigate to the DeviceGroup that contains the UE,
-then remove that UE's IMSI from the list. If you are removing a single UE, and the
-DeviceGroup is configured with a range specifier that includes several IMSIs,
-then it might be necessary to split that range into multiple ranges.
-
-* If the UE to be removed has an IMSI ID in the middle of an existing IMSI Range:
-    click the *trash can* icon next to that *IMSI Range* and
-    use the *+* icon to add new Ranges for the remaining IMSI IDs.
-* Alternatively if the UE to be removed has an IMSI ID at the start or end of an existing IMSI Range:
-    then adjust the **start** or **end** value accordingly.
 * Once finished editing, proceed to the *Basket View*, inspect the changes and Commit.
 
 |DEVICEGROUP-EDIT|
 
 .. note::
-    The UE may continue to have connectivity until its next detach/attach cycle.
+    The Device may continue to have connectivity until its next detach/attach cycle.
 
 Create a new DeviceGroup
 ------------------------
 
-DeviceGroups allow UEs to be grouped and configured together. Each site comes preconfigured with
+DeviceGroups allow Devices to be grouped and configured together. Each site comes preconfigured with
 a default DeviceGroup, but additional DeviceGroups may be created. For example, placing all IP
 Cameras in an "my-site-ip-cameras" DeviceGroup would allow you to group IP Cameras together.
 
@@ -173,9 +183,9 @@
 
 * Specify a unique **id** for the DeviceGroup
     40 characters max and only alphanumeric and `-`, `_` and `.` allowed
-* Choose a *Site* from the preconfigured list
-    It will not be possible to add IMSI Ranges until the Site is chosen
-* UE ID Ranges can be added at this stage or later
+* Choose an *Enterprise* and *Site* from the preconfigured list
+    It will not be possible to add Devices until the Site is chosen
+* Devices can be added at this stage or later
 
 |DEVICEGROUP-ADD|
 
@@ -183,11 +193,11 @@
 --------------------
 
 If a DeviceGroup is no longer needed, it can be deleted. Deleting a DeviceGroup will not cause
-the UEs participating in the group to automatically be moved elsewhere.
+the Devices participating in the group to automatically be moved elsewhere.
 
 .. note::
-    If a Device Group is being used by an existing VCS, then it cannot be removed.
-    Delete the VCS first, and then the DeviceGroup.
+    If a Device Group is being used by an existing Slice, then it cannot be removed.
+    Delete the Slice first, and then the DeviceGroup.
 
 A DeviceGroup can be deleted from the DeviceGroup list view, by clicking the *trash can* icon
 next to it. The deletion is added to the **Basket** directly. Navigate to the *Basket View*
@@ -196,68 +206,33 @@
 |DEVICEGROUP-LIST|
 
 
-Add a DeviceGroup to a Virtual Connectivity Service (VCS)
----------------------------------------------------------
+Add a DeviceGroup to a Slice
+----------------------------
 
 In order to participate in the connectivity service, a DeviceGroup must be associated with
-a Virtual Connectivity Service (VCS).
+a Slice.
 
-Navigate to the *VCS* list view to see the list of VCS's and their associations to DeviceGroups.
+Navigate to the *Slice* list view to see the list of Slice's and their associations to DeviceGroups.
 
-|VCS-LIST|
+|SLICE-LIST|
 
-To edit a *VCS* click on the *edit* button next to it in this list.
+To edit a *Slice* click on the *edit* button next to it in this list.
 
-This brings up the VCS edit page where (among many other things) zero, one or many
+This brings up the Slice edit page where (among many other things) zero, one or many
 DeviceGroups can be associated with it.
 
-* Click the *trash can* symbol to remove a DeviceGroup from the VCS
+* Click the *trash can* symbol to remove a DeviceGroup from the Slice
 * Click the *+* icon to add a DeviceGroup
 * Click the *Enable* slider to Enable or Disable the DeviceGroup
-   * This is a way of disabling or reenabling the DeviceGroup within a VCS without having to remove it
+   * This is a way of disabling or reenabling the DeviceGroup within a Slice without having to remove it
 
-|VCS-EDIT|
+|SLICE-EDIT|
 
-Remove a DeviceGroup from a Virtual Connectivity Service (VCS)
---------------------------------------------------------------
+Remove a DeviceGroup from a Slice
+---------------------------------
 
 The procedure is covered in the above section.
 
-.. _monitor_device_group:
-
-Monitoring a DeviceGroup
-------------------------
-
-The performance of a Device Group can be monitored in many ways, by clicking its |monitor| (**monitor**) icon:
-
-* From the *VCS Monitor* page, which shows all DeviceGroup's belonging to an VCS.
-* From the DeviceGroup List Page - click the |monitor| icon for the DeviceGroup.
-* When editing an existing DeviceGroup - in the Edit page, the |monitor| is next to the *id*
-
-The *monitor* page itself shows:
-
-* An information Panel for each *IMSI Range* in the *DeviceGroup*
-
-    * Each UE has a |monitor| button that allows further drill down
-    * Each UE is shown with its fully expanded IMSI number (a combination of *IMSI ID* and *Site* parameters)
-* An information panel for the *Site* and *IP Domain* of the *DeviceGroup*
-
-    * Clicking on the down arrow expands each panel
-
-.. image:: images/aether-roc-gui-devicegroup-monitor.png
-    :width: 600
-    :alt: DeviceGroup Monitor View with UE links and information panels
-
-The per UE Monitor panel contains:
-
-* a graph of the UE's Throughput and Latency over the last 15 minutes
-* a graph of the UE's connectivity over the last 15 minutes
-
-.. image:: images/aether-roc-gui-ue-monitor.png
-    :width: 600
-    :alt: DeviceGroup Monitor View with UE links and information panels
-
-
 .. |monitor| image:: images/monitor-icon.png
     :width: 28
     :alt: Monitor icon
@@ -274,13 +249,13 @@
     :width: 700
     :alt: Device Groups Edit View in Aether ROC GUI showing IMSI Range
 
-.. |VCS-LIST| image:: images/aether-roc-gui-vcs-list.png
+.. |SLICE-LIST| image:: images/aether-roc-gui-slice-list.png
     :width: 920
-    :alt: VCS List View in Aether ROC GUI showing DeviceGroup association
+    :alt: Slice List View in Aether ROC GUI showing DeviceGroup association
 
-.. |VCS-EDIT| image:: images/aether-roc-gui-vcs-edit.png
+.. |SLICE-EDIT| image:: images/aether-roc-gui-slice-edit.png
     :width: 700
-    :alt: VCS Edit View in Aether ROC GUI showing DeviceGroup association editing
+    :alt: Slice Edit View in Aether ROC GUI showing DeviceGroup association editing
 
 .. |BASKETVIEW-NEWRANGE| image:: images/aether-roc-gui-basket-view-new-range.png
     :width: 635
@@ -291,5 +266,21 @@
     :alt: Basket View with history of last changes
 
 .. |SITE-LIST| image:: images/aether-roc-gui-sites-list.png
-    :width: 755
+    :width: 1000
     :alt: Sites List View in Aether ROC GUI showing site details
+
+.. |SIMCARD-LIST| image:: images/aether-roc-gui-simcard-list.png
+    :width: 1000
+    :alt: Sim-Card List View
+
+.. |SIMCARD-ADD| image:: images/aether-roc-gui-simcard-add.png
+    :width: 700
+    :alt: Adding a new Sim-Card.
+
+.. |DEVICE-LIST| image:: images/aether-roc-gui-device-list.png
+    :width: 1000
+    :alt: Sim-Card List View
+
+.. |DEVICE-ADD| image:: images/aether-roc-gui-device-add.png
+    :width: 700
+    :alt: Adding a new Sim-Card.
