diff --git a/overview/architecture.rst b/overview/architecture.rst
index 3182ce5..9e2efcf 100644
--- a/overview/architecture.rst
+++ b/overview/architecture.rst
@@ -2,8 +2,8 @@
    SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
    SPDX-License-Identifier: Apache-2.0
 
-SD-Core Architecture
-====================
+SD-Core as a Cloud Managed Service
+==================================
 
     * SD-Core is a flexible, agile, scalable and configurable dual-mode 4G/5G core
       network platform that builds upon and enhances ONF’s OMEC and free 5GC core
@@ -14,19 +14,50 @@
 
     * SD-Core provides a rich set of APIs to Runtime Operation Control (ROC).
 
-        * Operators can use these APIs to provision the subscribers in the mobile core;
-        * Control runtime configuration of network functions
-        * Provide telemetry data to third party applications
-        * Third party applications can leverage telemetry data to create applications
-          for closed loop control.
+        * Operators can use these APIs to provision the subscribers in the mobile core
+          and their associated access and connectivity policies.
+        * Control runtime configuration of network functions e.g. management of Network slices
+        * ROC includes built-in adapters for SD-Core to translate its monitoring and configuration
+          APIs to customer and operator portals as well as third-party applications with corresponding
+          levels of abstraction. Third party applications can leverage telemetry data to create
+          applications for closed loop control.
 
 .. image:: ../_static/images/SD-Core-Architecture.png
   :width: 700px
 
+SD-Core Architecture
+--------------------
+SD-Core architecture enables the following distinct features:
+
+    - All SD-Core components follow 3GPP standards to interface with others as well as the
+      external networks and systems (e.g., RAN, communication services, etc.). As such,
+      components can be consumed independently and be used as part of a multi-vendor
+      mobile core deployment.
+    - SD-Core’s 5G core control plane functions leverage seed code from the free5GC project,
+      upon which the SD-Core community has implemented numerous architectural changes that
+      are integrated and optimized with SD-Core’s set of UPF solutions along with several
+      new features
+    - The solution enables 4G, 5G Standalone (SA) and 5G Non-Standalone (NSA) connectivity.
+    - The architecture is fully disaggregated, composed of containerized components. Helm charts are
+      provided to deploy SD-Core on K8s cluster.
+    - The platform is configurable in runtime via an extensible set of APIs.
+    - The solution is consumable as a cloud-managed service.
+    - All interfaces are designed to be robust in order to handle all network errors including but
+      not limited to packet loss, peer network function failure, and duplicate packets.
+    - SD-Core’s 4G Core is designed to have a CUPS (Control-User Plane Separation) compliant architecture and
+      uses the 3GPP Packet Forwarding Control Protocol (PFCP) to implement CUPS
+    - SD-Core’s 4G control plane has been enhanced to provide functional support for 5G Nonstandalone
+      operation with compliant eNBs and gNBs as per 3GPP specifications. 5G NSA related enhancements
+      include support of the extended bearer rates on required interfaces as well as the 5G NSA attributes
+      in the HSS.
+
+.. image:: ../_static/images/Sd-Core-NFs.png
+  :width: 700px
+
 Multiple Distributed User Planes
 --------------------------------
 
-SD-Core has three User Plane Functions (UPFs) designed to be deployed throughout
+SD-Core has two User Plane Functions (UPFs) designed to be deployed throughout
 the network edge. Each UPF is optimized to handle specific classes of application
 and take advantage of various hardware acceleration options. Deployments can
 intermix the UPF variants.
@@ -35,25 +66,93 @@
       visibility for verifiable performance and secure operations
     * Containerized Dual-Core UPF optimized for private enterprise deployments, capable of
       processing LTE and 5G traffic simultaneously
-    * Containerized Dual-Core UPF optimized for various MNO use cases, capable of processing
-      LTE and 5G traffic simultaneously
 
 
-SD-Core architecture is modular and apis are provided to manage connectivity service.
+In SD-Core, a connected device is assigned to a UPF based on the network-wide slice configuration.
+Specifically, in 5G core, the SMF uses the network slice information received in the user session
+context as well as the Data Network Name (DNN) information received from AMF to select the serving
+UPF. In the case of 4G core, the SPGW-C uses the the Access Point Name (APN) information to select
+the serving UPF.
 
-    - Connectivity service is designed in such a way that it can be consumed easily and its
-      easy to configure. Please refer ``configuration section``. Configuration APIs are same
-      for 4G & 5G service.
-    - Metrics are exposed from SD-Core which helps network admins and application developers.
-    - Application filtering is supported to restrict the access to applications.
+Network Slicing
+---------------
 
-Architecture Diagram showing SD-Core box
-----------------------------------------
-- Diagram should show ROC interface, prometheus interface, UPF interface, gNB/eNB interface
+Network slicing is one of the most important features of the 5G core network. Network
+slicing helps in isolating the network for various business and use cases. In the disaggregated
+service-based architecture of 5G core, this isolation may include only the UPF or also a subset
+of the control plane services such as the SMF. However, mobile core control functions that
+are responsible for managing user mobility, user authentication, and network slicing need
+to remain centralized across all slices. SD-Core provides the necessary APIs to manage
+network slices using external agents. ONF’s ROC, pre-integrated with SD-Core, allows for this
+central management via portals as well as automation. If the management requires
+instantiation of a new UPF and/or a new SMF instance, ROC oversees this by interacting with
+edge cloud or hyperscale container management services to provision such new network
+function instances.
+
+Once all mobile core service instances are provisioned for a new slice, ROC uses SD-Core
+APIs to configure the slice as well as all required central network functions. SD-Core provides
+APIs to create and configure network slices and assign resources to each slice. Operators can
+assign a slice for a group of users/devices based on the use case. The behavior of each slice
+is configurable and can be dynamically changed during run time. SD-Core’s architecture
+supports assigning dedicated network functions to a specific slice or providing logical
+separation if network functions are to be shared among various slices. Various QoS and
+access policies can be applied to each slice to control the assigned resources as well as IP
+connectivity and access control within each slice.
+Operators can create new slices based on criteria such as isolating devices allowed to access
+specific packet data networks/edge applications or keeping all devices or flows with the
+same QoS classification grouped under one slice. Network slice selection is achieved through
+3GPP-specified network functions like Network Slice Selection Function (NSSF) and Network
+Repository Function (NRF). NSSF helps in mapping the device/flow to a specific slice and
+steering the device/flow traffic to the right set of core network elements. SD-Core’s 5G
+implementation natively includes both NSSF and NRF for slice selection.
+As described earlier, SD-Core’s P4-based dual-core UPF allows for the monitoring of all
+4G/5G traffic with fine-grained granularity using INT. This effectively means that with the P4-
+based dual-core UPF, it is possible to conduct per packet network monitoring to track
+whether slice-specific SLAs are being met and automatically adapt network behavior by
+changing per slice resource allocations, QoS priorities etc., to automatically sustain the
+required network performance using closed-loop control.
+
+SD-Core Deployment Options
+--------------------------
+
+The level of disaggregation and associated optimizations achieved for each component of
+its 4G and 5G control plane makes SD-Core suitable for a wide variety of deployment
+options. These optimizations include the capability for the 4G and 5G control planes to
+oversee many UPFs, potentially instantiated at geographically diverse locations, as illustrated
+It is possible to deploy all components of SD-Core collocated in an edge cloud or a central
+cloud for private consumption. It is also possible to distribute the components of SD-Core
+across multiple clouds, edge and central, to deliver a cloud-managed multi-tenant
+connectivity service. In this distributed deployment option, SD-Core’s control plane will run
+on a central/hyperscaler cloud and control multiple user planes running on different onpremises
+edge clouds, potentially serving distinct customers as illustrated in Figure 8. In this
+deployment, the 4G and 5G control plane functions can scale as necessary. Each customer
+site can have more than one UPF deployed depending on the use cases and network slices
+configured. Operators can also decide to deploy UPFs in the central cloud for certain
+customers and their use cases where latency and data privacy is not a concern. SD-Core
+brings the flexibility to define network slices for each customer in such a way that one
+deploys a distinct UPF for each slice and instantiates the various components of the solution
+at the customer edge or in the central cloud, as needed and best suited.
+
+
+.. image:: ../_static/images/hybrid-cloud.png
+  :width: 700px
+
+SD-Core’s hybrid cloud deployment is an important enabler for a managed 4G/5G
+connectivity service where each customer site may be deployed to serve a different set of
+use cases and may have different types of underlying cloud environments. The 4G/5G core
+control planes running on the central cloud have been designed and optimized to support
+distributed edge sites which are spread across different locations across the world. The
+SD-Core control plane uses PFCP to communicate with the UPFs at the edge sites. The hybrid
+cloud deployment architecture has been optimized to handle variability in encountered
+delays communicating with the remote edge sites and is equipped to handle potential
+packet losses and retransmissions to support a multi-tenant, distributed geography
+deployment.
+
+
 
 Architecture Diagram of SD-Core 4G block
 ----------------------------------------
-- show configPod, config distribution, MongoDB, Cassandra DB, SIMApp..., 4G network Functions
+- show configPod, config distribution, Cassandra DB, SIMApp, 4G network Functions
 
 Architecture Diagram of SD-Core 5G block
 ----------------------------------------
diff --git a/overview/introduction.rst b/overview/introduction.rst
index 5c0ba52..5570e06 100644
--- a/overview/introduction.rst
+++ b/overview/introduction.rst
@@ -5,19 +5,25 @@
 SD-Core Introduction
 ====================
 
-The SD-Core™ project is a 4G/5G disaggregated mobile core optimized for public
-cloud deployment in concert with distributed edge clouds and is ideally suited
-for carrier and private enterprise 5G networks. It exposes standard 3GPP interfaces
-enabling use of SD-Core as a conventional mobile core. It is also available
-pre-integrated with an adapter (part of the Aether ROC subsystem) for those
-deploying it as a mobile core as-a-service solution.
+SD-Core™ is the Open Networking Foundation™ (ONF)’s open source, flexible, agile,
+scalable, and configurable dual-mode 4G/5G mobile core network solution that enables a
+cloud-based Connectivity-as-a-Service. SD-Core builds and enhances on ONF’s 4G Open
+Mobile Evolved Core (OMEC)™ as well as the free5GC© core network platform to create a
+dual-mode solution that supports LTE, 5G NSA and 5G SA services optimized for hybrid-cloud
+environments.
 
-SD-Core is an integral component of Aether, ONF’s 5G Connected Edge platform for
-private mobile connectivity and edge cloud services. It can be rapidly deployed
-pre-integrated with Aether, as a standalone 5G/4G mobile core, or as control and
-dataplane (UPF) components integrated into custom designed solutions. This range
-of versatility makes the open source SD-Core platform ideally suited for the
-broadest range of use cases and deployment scenarios.
+Its centralized dual-mode mobile core control plane has been designed to control many UPFs
+distributed across many edge clouds around the world. This makes SD-Core the ideal open
+source platform to offer cloud-based Private 4G/5G connectivity services to enterprises
+as an enabler for Industry 4.0 transformation.
+
+SD-Core provides a rich set of APIs for runtime configurability of each of its services, as well
+as supporting subscriber management via third party applications. These APIs provide
+extensive telemetry capabilities that enable monitoring, logging, and alerts, with integrated
+verification and closed-loop control solutions. With operator and customer facing portals,
+SD-Core can be configured for dynamically programmable network slicing, subscriber, QoS
+and policy management, providing precise access control for users, devices, data networks
+and edge applications.
 
 SD-Core Overview
 ----------------
@@ -31,13 +37,29 @@
 .. image:: ../_static/images/SD-Core-Overview.png
   :width: 700px
 
+SD-Core uses OMEC and free5GC as baseline components, integrates the two for dual-mode operation, and provides
+significant new functionality to optimize delivery of Connectivity-as-a-Service from the
+hybrid cloud. It is of course also possible to use SD-Core to provide 4G-only, or 5G-only
+connectivity using standard 3GPP interfaces.
+
+In order to optimize for the hybrid cloud and to support emerging Industry 4.0 use cases,
+SD-Core includes multiple user plane functions (UPFs) to handle different classes of
+enterprise traffic:
+
+    - A P4-based UPF offloads the packet processing and forwarding operations to a
+      programmable edge fabric to achieve significant performance with much higher
+      bandwidths, significantly lower latencies, and highly predictable very low jitter, albeit
+      for a relatively modest number of devices/flows
+    - A containerized, highly scalable solution provides high performance by leveraging
+      acceleration technologies like DPDK.
+
 SD-Core is an Integral Part of Aether
 -------------------------------------
 
     - SD-Core is an integral component of Aether, ONF’s 5G Connected Edge platform for
       private mobile connectivity and edge cloud services.
     - SD-Core provides the 4G/5G connectivity and the SD-Core control plane at the central
-      site controls multiple SD-Core user plane components running at each Aether Edge site.
+      site controls multiple user plane components running at each Aether Edge site.
 
 .. image:: ../_static/images/Sd-Core-Aether-Integral.jpg
   :width: 700px
