diff --git a/docs/README.md b/docs/README.md
index fc32baf..fcff27c 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,20 +1,25 @@
 # M-CORD Profile
 
-The M-CORD (Mobile CORD) profile is `Official` as of 4.1.
+M-CORD 5.0 documentation is not ready yet, we are working on it now !
+
+The M-CORD (Mobile CORD) profile is `Official` as of 4.1. This document
+describes 5.0.
 
 ## Service Manifest
 
-M-CORD includes service manifests:
-
-### [mcord-ng40](https://github.com/opencord/platform-install/blob/cord-4.1/profile_manifests/mcord-ng40.yml)
+M-CORD includes service manifests: mcord-cavium
 
 | Service      | Source Code         |
 |--------------|---------------|
 | epc-service  | https://github.com/opencord/epc-service |
 | Fabric       | https://github.com/opencord/fabric |
+| HSS_DB       | based on Cassandra, will be provided in hss_db image |
+| InternetEmulator | based on VLC, will be provided in internetEmulator image |
 | ONOS         | https://github.com/opencord/onos-service |
 | OpenStack    | https://github.com/opencord/openstack |
 | vENB         | https://github.com/opencord/venb |
+| vHSS         | https://github.com/opencord/vHSS |
+| vMME         | https://github.com/opencord/vMME |
 | vSPGWC       | https://github.com/opencord/vspgwc |
 | vSPGWU       | https://github.com/opencord/vspgwu |
 | VTN          | https://github.com/opencord/vtn |
@@ -22,17 +27,19 @@
 ## Model Extensions
 
 M-CORD extends CORD's core models with the following model specification
-[mcord.xproto](https://github.com/opencord/mcord/blob/master/xos/models/mcord.xproto),
+[mcord.xproto](https://github.com/opencord/mcord/blob/cord-5.0/xos/models/mcord.xproto),
 which represents the subscriber that anchors a chain of ServiceInstances:
 
 ```proto
 message MCordSubscriberInstance (ServiceInstance) {
     option verbose_name = "MCORD Subscriber";
-    option description = "This model holds the informations of a Mobile Subscriber in CORD";
+    option description = "This model holds the informations of a Mobile
+    Subscriber in CORD";
 
     required string imsi_number = 1 [max_length = 30, content_type = "stripped", blank = False, null = False, db_index = False];
     optional string apn_number = 2 [max_length = 30, content_type = "stripped", blank = True, null = True, db_index = False];
-    optional int32 ue_status = 3 [max_length = 30, choices = "(('0', 'Detached'), ('1', 'Attached'))", blank = True, null = True, db_index = False];
+    optional int32 ue_status = 3 [default = "0", choices = "(('0', 'Detached'), ('1', 'Attached'))", blank = True, null = True, db_index = False];
+    optional string created_by = 4 [null = True, blank = True, gui_hidden = True];
 }
 ```
 
diff --git a/docs/overview.md b/docs/overview.md
index 134dbd2..440e8c4 100644
--- a/docs/overview.md
+++ b/docs/overview.md
@@ -1,6 +1,6 @@
 # Overview
 
-## What is M-CORD?
+## What is M-CORD
 
 M-CORD is a CORD use-case for mobile edge cloud. The architecture allows
 Service Providers to disaggregate both the RAN and the core, as well as to
@@ -18,17 +18,16 @@
 programmable network slicing (ProgRAN), and MME-disaggregation. These features
 have already been demonstrated.
 
-The first release (4.1) of M-CORD ships with the basic CORD building blocks
-(ONOS, XOS, Docker, and Open Stack), as well as with a number of VNFs to
-support 3GPP LTE connectivity. These VNFs include a CUPS compliant open source
-SPGW (in the form of two VNFs: SPGW-u and SPGW-c), as well as a VNF emulating
-an MME with an integrated HSS, eNBs and UEs. The emulator is not open source.
-It comes as a binary, courtesy of ng4T (<http://www.ng4t.com>), who provides
-free trial licenses for limited use.
+The M-CORD 5.0 ships with the basic CORD building blocks (ONOS, XOS, Docker,
+and Open Stack), as well as with a number of VNFs to support 3GPP LTE
+connectivity. These VNFs include a CUPS compliant open source SPGW (in the
+form of two VNFs: SPGW-u and SPGW-c), as well as an MME, a HSS, a HSS_DB and
+an Internet emulator. This EPC network should use standalone eNodeB hardware
+and real UE (User Equipment).
 
 Following releases of M-CORD will complete the open source EPC suite, by
-offering an MME, an HSS, as well as a PCRF VNF. The inclusion of these
-additional VNFs is targeted for the 6.0 release.
+offering a PCRF VNF. The inclusion of this additional VNF is targeted for
+the 6.0 release.
 
 The picture below shows a diagram representing a generic M-CORD POD.
 
@@ -103,57 +102,32 @@
 
 The current release of M-CORD includes:
 
-* An open source EPC, providing an SPGW control plane and an SPGW user plane
-  (respectively represented in the system by two VMs deployed on the compute
-  nodes). The current release of the EPC doesn’t yet provide MME, HSS and PCRF
-  services.
-* A closed source test suite, emulating UEs, eNodeBs, a minimal version of an
-  MME with an integrated HSS, and an application server (used to emulate the
-  upstream connectivity).
+* An open source EPC, providing an SPGW control plane, an SPGW user plane, an
+  MME, an HSS, an HSS_DB and an Internet emulator (respectively represented in
+  the system by VMs deployed on the compute nodes). The current release 5.0 of
+  the EPC does not yet provide PCRF service.
 
-With customizations the system is able to use real hardware base stations, but
-the released version supports just simple tests with emulated traffic.
+* Real hardware base station or Standalone eNodeB, UEs (connected to eNodeB
+  through radio channel). The eNodeB is physically connected to CORD POD.
 
-At high level, a UE emulator generates some traffic, that passes through the
-EPC, goes to an emulated application server, and then goes back to the traffic
-generator again.
+Looking at the system from another perspective, six VMs are provided:
 
-Looking at the system from another perspective, three VMs are provided (some of
-which implement multiple services:
-
-* **mysite_venb-X**: a test suite that emulates the RAN components (UEs,
-  eNodeBs), an application server, and some of the EPC components (MME and HSS)
+* **mysite_vmme-X**: a component of the EPC implementing the MME functionalities
+* **mysite_vhss-X**: a component of the EPC implementing the HSS functionalities
+  except database
+* **mysite_hss_db-X**: a component of the HSS implementing database which
+  contains all information of subscribers (i.e., UEs)
 * **mysite_vspgwc-X**: a component of the EPC implementing the S-GW and the
   P-GW control plane functionalities
 * **mysite_vspgwu-X**: a component of the EPC implementing the S-GW and the
   P-GW user plane functionalities
+* **mysite_internetemulator-X**: Internet emulator, works as a video streaming
+  server
 
 > NOTE: in the list above, X is a number that varies, and that is automatically
 > generated by the system. More information on how to get the list of VMs can
 > be found in the installation and troubleshooting guides, below.
 
-The picture below describes how the VMs are connected.
-
-![M-CORD VMs Wiring Diagram](static/images/vms_diagram.png)
-
-Following, is a list of the networks between the VMs:
-
-* **S11_net**: used to exchange control plane traffic between MME and SPGW
-  (i.e. tunnel and IP address allocation)
-* **S1U_net**: used to exchange user traffic. This specific network is used to
-  exchange data between the RAN components (UEs, eNodeBs) and the EPC
-* **SGI_net**: used to exchange user traffic. This specific network is used to
-  exchange data between the EPC and the Application Server, running on the
-  mysite_venb-X VM
-* **spgw_net**: network dedicated to the communication of the vSPGW components
-  (control plane and user plane)
-
-User traffic is generated on the mysite_venb-X VM. It goes uplink via S1U_net,
-reaches the EPC, flows through the SGI_net to the application server, emulating
-Internet. The application server replies, and the answer flows back in
-downlink, via SGI_net, through the EPC, via S1U_net, back to the emulated RAN
-(eNB and UEs).
-
 ## Evolved Packet Core (EPC)
 
 The EPC shipped with M-CORD is called “Next Generation Infrastructure Core”
@@ -168,32 +142,12 @@
 developed using data plane development kit (DPDK) version optimized for Intel
 Architecture.
 
+In this release 5.0, we also added MME, HSS, and HSS_DB as open source
+reference implementations.
+
 If you’re interested to know more and explore the EPC code, [see
 here](https://gerrit.opencord.org/#/admin/projects/ngic).
 
-## NG40 vTester software
-
-Within M-CORD, ng4T provides for free a limited version of its NG40 software.
-
-The free version:
-
-* Expires on the April 1st 2018
-* Emulates up to 1 eNB
-* Emulates up to 10 UE
-* Has 1 MME with an integrated HSS
-* Can connect up to 1 SPGW-C/U
-* Allows users to attach, detach and send user plane traffic
-* Support only standard Linux interfaces, no DPDK
-
-In order to use the NG40, the Operator will need to apply for a free NG40
-M-CORD license with ng4T at the beginning of the setup. Detailed steps can be
-found in the Installation section below in this guide.
-
-Full versions of the NG40 vTester can do much more than this. This requires
-users to apply for additional licenses. In order to apply for licenses, users
-will need to contact directly ng4T, using the email address `support@ng4t.com`.
-More details about the NG40 can be found at [their website](http://www.ng4t.com).
-
 ## XOS Service Graph
 
 XOS is CORD’s default orchestrator. It is described in detail in the XOS guide.
@@ -206,9 +160,9 @@
 
 XOS comes with a UI for instantiating and onboarding services, and creating
 service graphs. In the current implementation of M-CORD, the service graph
-shown in earlier sections has the following representation in XOS:
+has the following representation in XOS:
 
-![M-CORD XOS services wiring diagram](static/images/services_diagram.png)
+![M-CORD XOS services wiring diagram](static/images/service_graph-5.0.png)
 
 Instances of services are connected to each other in the data plane via private
 networks. On the orchestration side, they are connected via XOS-defined
@@ -237,9 +191,8 @@
 help configure instances of the service graph described in this document. The
 implementation of vEPC-as-a-Service contains a declarative description of the
 service graph in its config file,
-<https://github.com/opencord/epc-service/blob/cord-4.1/xos/synchronizer/vepc_config.yaml>.
-It is contained in an option called “blueprints.” While there is currently only
-one such blueprint graph, more may be added in the future.
+<https://github.com/opencord/epc-service/blob/cord-5.0/xos/synchronizer/vepc_config.yaml>.
+It is contained in an option called “blueprints”.
 
 In the blueprint graph, the network section configures the networks, and the
 graph section defines ServiceInstances and links them together via those
@@ -264,9 +217,9 @@
 synchronizers to translate them and make the service operational. Synchronizers
 are controllers that run in their own containers and react to changes in the
 data model to communicate those changes to the VNF in question. In the M-CORD
-setup, there are synchronizers for each of the services: vENB, vSPGWU, vSPGWC
-as well as vEPC-as-a-service. In addition, there are also synchronizers for the
-back-end components: OpenStack and ONOS.
+setup, there are synchronizers for each of the services: vENB, vMME, vHSS,
+vHSS_DB, vSPGWU, vSPGWC, as well as vEPC-as-a-service. In addition, there are
+also synchronizers for the back-end components: OpenStack and ONOS.
 
 There are two parts of a synchronizer: `model policies` and `sync steps`. Model
 Policies operate on the data model. vEPC-as-a-service is a good example of a
diff --git a/docs/static/images/service_graph-5.0.png b/docs/static/images/service_graph-5.0.png
new file mode 100644
index 0000000..23d13c0
--- /dev/null
+++ b/docs/static/images/service_graph-5.0.png
Binary files differ
