diff --git a/.ipynb_checkpoints/multi-area-model-checkpoint.ipynb b/.ipynb_checkpoints/multi-area-model-checkpoint.ipynb
index 146d3ba5ef3ed849eae9619eb196012ed3d46c26..ca06226bdef60d7f794a8fe162ad87ae7d43b7bd 100644
--- a/.ipynb_checkpoints/multi-area-model-checkpoint.ipynb
+++ b/.ipynb_checkpoints/multi-area-model-checkpoint.ipynb
@@ -11,69 +11,75 @@
   {
    "cell_type": "markdown",
    "id": "b952d0ea",
-   "metadata": {},
-   "source": [
-    "### Notebook structure <a class=\"anchor\" id=\"toc\"></a>\n",
-    "* [Create config file](#section_1)\n",
-    "* [Import dependencies](#section_2)\n",
-    "* [Jupyter notebook display format setting](#section_3)\n",
-    "* [Specify paramters of model](#section_4)\n",
-    "    * [1. Scaling factor (scale_down_to)](#section_4.1)\n",
-    "    * [2. Model parameters](#section_4.2)\n",
-    "    * [3. Simulation parameters](#section_4.3)\n",
-    "    * [4. Theory parameters](#section_4.4)\n",
-    "* [Instantiate a multi-area model and analyse](#section_5)\n",
-    "    * [1. Insantiate a multi-area model](#section_5.1)\n",
-    "    * [2. Predict firing rates from theory](#section_5.2)\n",
-    "    * [3. Extract connectivity](#section_5.3)\n",
-    "* [Run the simulation](#section_6)\n",
-    "* [Simulation results analysis](#section_7)\n",
-    "* [Load and process data of simulation results](#section_8)\n",
-    "* [Simulation results visualization](#section_9) "
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "d782e527",
    "metadata": {
     "tags": []
    },
    "source": [
-    "### Create config file <a class=\"anchor\" id=\"section_1\"></a>"
+    "#### Notebook structure <a class=\"anchor\" id=\"toc\"></a>\n",
+    "* [S0. Configuration](#section_0)\n",
+    "* [S1. Paramters specification](#section_1)\n",
+    "    * [1.1. Parameters to tune](#section_1_1)\n",
+    "    * [1.2. Default parameters](#section_1_2)\n",
+    "* [S2. Multi-area model instantiation and simulation](#section_2)\n",
+    "    * [2.1. Insantiate a multi-area model](#section_2_1)\n",
+    "    * [2.2. Predict firing rates from theory](#section_2_2)\n",
+    "    * [2.3. Extract connectivity](#section_2_3)\n",
+    "    * [2.4. Run the simulation](#section_2_4)\n",
+    "* [S3. Data processing and simulation results analysis](#section_3)\n",
+    "* [S4. Simulation results visualization](#section_4) "
    ]
   },
   {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "9b985084",
+   "cell_type": "markdown",
+   "id": "bd3d4b0e",
    "metadata": {},
-   "outputs": [],
    "source": [
-    "with open('config.py', 'w') as fp:\n",
-    "    fp.write(\n",
-    "'''import os\n",
-    "base_path = os.path.abspath(\".\")\n",
-    "data_path = os.path.abspath(\"simulations\")\n",
-    "jobscript_template = \"python {base_path}/run_simulation.py {label}\"\n",
-    "submit_cmd = \"bash -c\"\n",
-    "''')"
+    "<br>"
    ]
   },
   {
    "cell_type": "markdown",
-   "id": "4a853b97",
-   "metadata": {},
+   "id": "d782e527",
+   "metadata": {
+    "jp-MarkdownHeadingCollapsed": true,
+    "tags": []
+   },
    "source": [
-    "### Import dependencies <a class=\"anchor\" id=\"section_2\"></a>"
+    "## S0. Configuration <a class=\"anchor\" id=\"section_0\"></a>"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 1,
    "id": "96517739",
-   "metadata": {},
-   "outputs": [],
-   "source": [
+   "metadata": {
+    "tags": []
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "\n",
+      "              -- N E S T --\n",
+      "  Copyright (C) 2004 The NEST Initiative\n",
+      "\n",
+      " Version: 3.4\n",
+      " Built: May 17 2023 20:48:31\n",
+      "\n",
+      " This program is provided AS IS and comes with\n",
+      " NO WARRANTY. See the file LICENSE for details.\n",
+      "\n",
+      " Problems or suggestions?\n",
+      "   Visit https://www.nest-simulator.org\n",
+      "\n",
+      " Type 'nest.help()' to find out more about NEST.\n",
+      "\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Import dependencies\n",
     "%matplotlib inline\n",
     "import matplotlib.pyplot as plt\n",
     "import numpy as np\n",
@@ -81,40 +87,75 @@
     "import nest\n",
     "from IPython.display import display, HTML\n",
     "\n",
+    "# Import the MultiAreaModel class\n",
     "from multiarea_model import MultiAreaModel\n",
     "from config import base_path"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "id": "7e07b0d0",
+   "execution_count": 2,
+   "id": "2dd47c64",
    "metadata": {},
    "outputs": [],
    "source": [
-    "!pip install nested_dict dicthash"
+    "# Create config file\n",
+    "with open('config.py', 'w') as fp:\n",
+    "    fp.write(\n",
+    "'''import os\n",
+    "base_path = os.path.abspath(\".\")\n",
+    "data_path = os.path.abspath(\"simulations\")\n",
+    "jobscript_template = \"python {base_path}/run_simulation.py {label}\"\n",
+    "submit_cmd = \"bash -c\"\n",
+    "''')"
    ]
   },
   {
-   "cell_type": "markdown",
-   "id": "2f429063",
-   "metadata": {
-    "tags": []
-   },
+   "cell_type": "code",
+   "execution_count": 3,
+   "id": "7e07b0d0",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Requirement already satisfied: nested_dict in /srv/main-spack-instance-2302/spack/var/spack/environments/ebrains-23-02/.spack-env/._view/6axslmv6jvf4v2nte3uwlayg4vhsjoha/lib/python3.8/site-packages (1.61)\n",
+      "Requirement already satisfied: dicthash in /srv/main-spack-instance-2302/spack/var/spack/environments/ebrains-23-02/.spack-env/._view/6axslmv6jvf4v2nte3uwlayg4vhsjoha/lib/python3.8/site-packages (0.0.2)\n",
+      "Requirement already satisfied: future in /srv/main-spack-instance-2302/spack/var/spack/environments/ebrains-23-02/.spack-env/._view/6axslmv6jvf4v2nte3uwlayg4vhsjoha/lib/python3.8/site-packages (from dicthash) (0.18.2)\n"
+     ]
+    }
+   ],
    "source": [
-    "### Jupyter notebook display format setting <a class=\"anchor\" id=\"section_3\"></a>"
+    "!pip install nested_dict dicthash"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 4,
    "id": "1d440c07-9b69-4e52-8573-26b13493bc5a",
    "metadata": {
     "tags": []
    },
-   "outputs": [],
-   "source": [
-    "# specify the format the table in output\n",
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "\n",
+       "<style>\n",
+       "table {float:left}\n",
+       "</style>\n"
+      ],
+      "text/plain": [
+       "<IPython.core.display.HTML object>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    }
+   ],
+   "source": [
+    "# Jupyter notebook display format setting\n",
     "style = \"\"\"\n",
     "<style>\n",
     "table {float:left}\n",
@@ -125,262 +166,145 @@
   },
   {
    "cell_type": "markdown",
-   "id": "5ed5f5d0-f88d-4bc0-9739-da926fabcfe5",
+   "id": "27160ba8",
    "metadata": {},
    "source": [
-    "<br>"
+    "Go back to [Notebook structure](#toc)"
    ]
   },
   {
    "cell_type": "markdown",
-   "id": "df83f5ea-1c4b-44d3-9926-01786aa46e14",
-   "metadata": {
-    "tags": []
-   },
+   "id": "565be233",
+   "metadata": {},
    "source": [
-    "## Specify paramters of model <a class=\"anchor\" id=\"section_4\"></a>"
+    "<br>"
    ]
   },
   {
    "cell_type": "markdown",
-   "id": "2cedd26b",
+   "id": "df83f5ea-1c4b-44d3-9926-01786aa46e14",
    "metadata": {
     "tags": []
    },
    "source": [
-    "### 1. Scaling factor (scale_down_to) <a class=\"anchor\" id=\"section_4.1\"></a>\n",
-    "**Scaling factor** (scale_down_to) is the parameter which defines the the ratio of the full scale multi-area model being down-scaled to a model with fewer neurons and indegrees so as to be simulated on machines with lower computational ability and the simulation results can be obtained within relative shorter period of time.<br> <br> \n",
-    "Neurons and indegrees are both scaled down to 0.5%, where the model can usually be simulated on a local machine.<br> **Warning**: This will not yield reasonable dynamical results from the network and is only meant to demonstrate the simulation workflow.**"
+    "## S1. Paramters specification <a class=\"anchor\" id=\"section_1\"></a>"
    ]
   },
   {
    "cell_type": "markdown",
-   "id": "f66dbf02",
+   "id": "30655817",
    "metadata": {},
    "source": [
-    "|Parameter      |Parameter description  |Variable                     |Value               |Value description  |\n",
-    "|:-------------:|:----------------------|:---------------------------:|:------------------:|:------------------|\n",
-    "|Scaling factor |                       | scale_down_to               |0.005               |                   |"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "e940bb6b",
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "scale_down_to = 0.005 # Change it to 1. for running the fullscale network"
+    "### 1.1. Parameters to tune <a class=\"anchor\" id=\"section_1_1\"></a>"
    ]
   },
   {
    "cell_type": "markdown",
-   "id": "14bac1ce-4ba0-47ec-84b2-9d3c72bc96ec",
+   "id": "4f67c1ba",
    "metadata": {},
    "source": [
-    "### 2. Model parameters <a class=\"anchor\" id=\"section_4.2\"></a>\n",
-    "Model paramters are most important among all the paramters, it directly affect the model itself and thus have a great impact on the simulation results. Model paramters define the connection, input, neuron, and network charateristics of the model, and therefore fall into four categories: **Connection paramters**, **Input paramters**, **Neuron paramters**, and **Network paramters**."
+    "|Parameter                     |Default value            |Value range/options                                                   |Value assigned      |Description  |\n",
+    "|:----------------------------:|:-----------------------:|:--------------------------------------------------------------------:|:------------------:|:-----------:|\n",
+    "|scale_down_to                 |1.                       |(0, 1.]                                                               |0.005               |$^1$         |\n",
+    "|cc_weights_factor             |1.                       |(0, 1.]                                                               |1.                  |$^2$         |\n",
+    "|areas_simulated               |complete_area_list       |All sublists of complete_area_list                                    |complete_area_list  |$^3$         |\n",
+    "|replace_non_simulated_areas   |None                     |None, 'hom_poisson_stat', 'het_poisson_stat', 'het_current_nonstat'   |'het_poisson_stat'  |$^4$         |"
    ]
   },
   {
    "cell_type": "markdown",
-   "id": "106a6a5e",
+   "id": "a2161477",
    "metadata": {},
    "source": [
-    "* Connection parameters (conn_params)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "41d80271-f60e-49f4-9759-f8ad26097b2d",
-   "metadata": {},
-   "source": [
-    "| Parameter | Parameter description | Variable                    | Value              | Value description |\n",
-    "|:---------:|:----------------------|:---------------------------:|:------------------:|:------------------|\n",
-    "|           |                       | replace_non_simulated_areas | 'het_poisson_stat' |                   |\n",
-    "|           |                       | g                           | -11.               |                   |\n",
-    "|           |                       | K_stable                    | 'K_stable.npy'     |                   |\n",
-    "|           |                       | fac_nu_ext_TH               | 1.2                |                   |\n",
-    "|           |                       | fac_nu_ext_5E               | 1.125              |                   |\n",
-    "|           |                       | fac_nu_ext_6E               | 1.41666667         |                   |\n",
-    "|           |                       | av_indegree_V1              | 3950.              |                   |"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "1688ef55-2fdb-4800-97af-7ea62442c684",
-   "metadata": {},
-   "source": [
-    "* Input parameters (input_params)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "5127920c-2a89-42d0-9d87-889f7b7474d9",
-   "metadata": {},
-   "source": [
-    "| Parameter | Parameter description | Variable                      | Value                | Value description |\n",
-    "|:---------:|:----------------------|:-----------------------------:|:--------------------:|:------------------|\n",
-    "|           |                       | rate_ext                      |      10.             |                   |"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "aefa84c8-baaa-4afa-96c6-5d57d174b286",
-   "metadata": {},
-   "source": [
-    "* Neuron parameters (neuron_params)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "ab5eb287-e638-401f-9e2c-892f88c3ee90",
-   "metadata": {},
-   "source": [
-    "| Parameter | Parameter description | Variable                    | Value              | Value description |\n",
-    "|:---------:|:----------------------|:---------------------------:|:------------------:|:------------------|\n",
-    "|           |                       | V0_mean                     | -150.              |                   |\n",
-    "|           |                       | V0_sd                       | 50.                |                   |"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "ea4e01aa",
-   "metadata": {},
-   "source": [
-    "* Network parameters (network_params)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "dc4ce111",
-   "metadata": {},
-   "source": [
-    "| Parameter                               | Parameter description | Variable              | Value                         | Value description |\n",
-    "|:---------------------------------------:|:----------------------|:---------------------:|:-----------------------------:|:------------------|\n",
-    "| Scaling factor of the number of neurons |                       | N_scaling             | scale_down_to                 |                   |\n",
-    "| Scaling factor of the number of synapses|                       | K_scaling             | scale_down_to                 |                   |\n",
-    "| Fullscale rates                         |                       | fullscale_rates       | 'tests/fullscale_rates.json'  |                   |\n",
-    "| Input parameters                        |                       | input_params          | input_params                  |                   |\n",
-    "| Connections parameters                  |                       | connection_params     | conn_params                   |                   |\n",
-    "| Neuron parameters                       |                       | neuron_params         | neuron_params                 |                   |"
+    "1. `scale_down_to` <br>\n",
+    "`scale_down_to` is the down-scaling factor which defines the the ratio of the full scale multi-area model being down-scaled to a model with fewer neurons and indegrees so as to be simulated on machines with lower computational ability and the simulation results can be obtained within relative shorter period of time. <br> Its deafualt value if 1. meaning full scale simulation. <br> In the pre-set downscale version, it's set as 0.005, where the numer of neurons and indegrees are both scaled down to 0.5% of its full scale amount, where the model can usually be simulated on a local machine. <br> **Warning**: This will not yield reasonable dynamical results from the network and is only meant to demonstrate the simulation workflow <br> \n",
+    "2. `cc_weights_factor` <br>\n",
+    "This scaling factor controls the cortico-cortical synaptic strength. <br> By default it's set as 1.0, where the inter-area synaptic strength is the same as the intra-areal. <br> **Important**: This factor changes the network activity from ground state to metastable state. <br>\n",
+    "3. `areas_simulated` <br>\n",
+    "This parameter specifies the cortical areas included in the simulation process. Its default value is `complete_area_list` meaning all the areas in the complete_area_list will be actually simulated. <br>\n",
+    "complete_area_list = ['V1', 'V2', 'VP', 'V3', 'V3A', 'MT', 'V4t', 'V4', 'VOT', 'MSTd', 'PIP', 'PO', 'DP', 'MIP', 'MDP', 'VIP', 'LIP', 'PITv', 'PITd', 'MSTl', 'CITv', 'CITd', 'FEF', 'TF', 'AITv', 'FST', '7a', 'STPp', 'STPa', '46', 'AITd', 'TH'] <br>\n",
+    "The value assigned to simulation_areas can be any sublist of the `compete_area_list` specifying areas a user want to include in his/her simulation. <br>\n",
+    "4. `replace_non_simulated_areas` <br>\n",
+    "The paramter `replace_non_simulated_areas` defines how non-simulated areas will be replaced. <br> It's set as None by default when the parameter areas_simulated is set as full_area_list where all areas will be simulated so that no areas need to be replaced. <br> Other options are: 'hom_poisson_stat', 'het_poisson_stat', and 'het_current_nonstat'. 'hom_poisson_stat' is a manually set parameter which can be tuned. When it's set as 'het_poisson_stat' or 'het_current_nonstat', the data to replace the cortico-cortical input is loaded from 'replace_cc_input_source' which is the firing rates of our full scale simulation results. The differenc between 'het_poisson_stat' and 'het_current_nonstat' is that 'het_poisson_stat' is the mean of the time-series firing rate so that it's static, yet 'het_current_nonstat' is time-varying specific current, which is varying by time. "
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "id": "6e4bed8d",
+   "execution_count": 5,
+   "id": "60265d52",
    "metadata": {},
    "outputs": [],
    "source": [
-    "conn_params = {'replace_non_simulated_areas': 'het_poisson_stat',\n",
-    "               'g': -11.,\n",
-    "               'K_stable': 'K_stable.npy',\n",
-    "               'fac_nu_ext_TH': 1.2,\n",
-    "               'fac_nu_ext_5E': 1.125,\n",
-    "               'fac_nu_ext_6E': 1.41666667,\n",
-    "               'av_indegree_V1': 3950.}"
+    "# Downscaling factor\n",
+    "scale_down_to = 0.005 # Change it to 1. for running the fullscale network\n",
+    "\n",
+    "# Scaling factor for cortico-cortical connections (chi) \n",
+    "cc_weights_factor = 1.\n",
+    "\n",
+    "# Cortical areas included in the simulation\n",
+    "areas_simulated = ['V1', 'V2', 'VP', 'V3', 'V3A', 'MT', 'V4t', 'V4', 'VOT', 'MSTd', 'PIP', 'PO', 'DP', 'MIP', 'MDP', 'VIP', 'LIP', 'PITv', 'PITd', 'MSTl', 'CITv', 'CITd', 'FEF', 'TF', 'AITv', 'FST', '7a', 'STPp', 'STPa', '46', 'AITd', 'TH']\n",
+    "\n",
+    "# Firing rates used to replace the non-simulated areas\n",
+    "replace_non_simulated_areas = 'het_poisson_stat'"
    ]
   },
   {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "7e4ede2c",
+   "cell_type": "markdown",
+   "id": "de11b07f",
    "metadata": {},
-   "outputs": [],
    "source": [
-    "input_params = {'rate_ext': 10.}"
+    "### 1.2. Default parameters <a class=\"anchor\" id=\"section_1_2\"></a>\n",
+    "We try our best not to confuse users with too many parameters. However, if you want to change more parameters and explore the model, you can do so by passing a dictionary to the `default_params` argument of the `MultiAreaModel` class."
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
-   "id": "f69ad836-70b8-4ebe-b46a-25f48dc3ca7c",
+   "execution_count": 6,
+   "id": "6e4bed8d",
    "metadata": {},
    "outputs": [],
    "source": [
+    "# Connection parameters (conn_params)\n",
+    "conn_params = {\n",
+    "    # # It defines how non-simulated areas will be replaced\n",
+    "    # Whether to replace non-simulated areas by Poisson sources with the same global rate rate_ext ('hom_poisson_stat') or by specific rates ('het_poisson_stat') or by time-varying specific current ('het_current_nonstat'). In the two latter cases, the data to replace the cortico-cortical input is loaded from `replace_cc_input_source`\n",
+    "    'replace_non_simulated_areas': 'het_poisson_stat', \n",
+    "\n",
+    "    'g': -11.,\n",
+    "    'K_stable': 'K_stable.npy',\n",
+    "    # Increase the external input to 2/3E and 5E in area TH\n",
+    "    'fac_nu_ext_TH': 1.2,\n",
+    "    # Increase the external Poisson indegree onto 5E\n",
+    "    'fac_nu_ext_5E': 1.125,\n",
+    "    # Increase the external Poisson indegree onto 6E\n",
+    "    'fac_nu_ext_6E': 1.41666667,\n",
+    "    # Adjust the average indegree in V1 based on monkey data\n",
+    "    'av_indegree_V1': 3950.\n",
+    "}\n",
+    "\n",
+    "# Input parameters (input_params)\n",
+    "input_params = {'rate_ext': 10.}\n",
+    "\n",
+    "# Neuron parameters (neuron_params)\n",
     "neuron_params = {'V0_mean': -150.,\n",
-    "                 'V0_sd': 50.}"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "0aa9a9bf-b95d-4643-82a0-e29a49bb58df",
-   "metadata": {},
-   "outputs": [],
-   "source": [
+    "                 'V0_sd': 50.}\n",
+    "\n",
+    "# Network parameters (network_params)\n",
     "network_params = {'N_scaling': scale_down_to,\n",
     "                  'K_scaling': scale_down_to,\n",
     "                  'fullscale_rates': 'tests/fullscale_rates.json',\n",
     "                  'input_params': input_params,\n",
     "                  'connection_params': conn_params,\n",
-    "                  'neuron_params': neuron_params}"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "a0730f70-ed9b-4664-b677-3dda965a01ef",
-   "metadata": {},
-   "source": [
-    "### 3. Simulation paramters (sim_params) <a class=\"anchor\" id=\"section_4.3\"></a>\n",
-    "Simulation parameters define the paramters that influence the process of simulation, inlcuding the simulation time, the number of processes and theads used to run the simulation.<br>"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "c989ee79-fa3d-405c-a1bf-da8ec884d878",
-   "metadata": {},
-   "source": [
-    "| Parameter             | Parameter description | Variable             | Value              | Value description |\n",
-    "|:---------------------:|:----------------------|:--------------------:|:------------------:|:------------------|\n",
-    "|Simulation time        |                       |t_sim                 |2000.               |                   |\n",
-    "|Number of processes    |                       |num_processes         |1                   |                   |\n",
-    "|Number of local threads|                       |local_num_threads     |1                   |                   |\n",
-    "|                       |                       |recording_dict        |input_params        |                   |\n",
-    "|                       |                       |record_vm             |False               |                   |"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "21484ed3-295f-4d06-b757-2969aac429a4",
-   "metadata": {},
-   "outputs": [],
-   "source": [
+    "                  'neuron_params': neuron_params}\n",
+    "\n",
+    "# Simulation parameters (sim_params)\n",
     "sim_params = {'t_sim': 2000.,\n",
     "              'num_processes': 1,\n",
     "              'local_num_threads': 1,\n",
     "              'recording_dict': {'record_vm': False},\n",
-    "              'rng_seed': 1} # global random seed"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "79596d77-c105-45d0-9a57-2d15e31f1189",
-   "metadata": {},
-   "source": [
-    "### 4. Theory paramters (theory_params) <a class=\"anchor\" id=\"section_4.4\"></a>\n",
-    "Theory parameters defines ..."
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "18e0deda-1dec-4df8-b994-ef641b3c5aac",
-   "metadata": {},
-   "source": [
-    "| Parameter | Parameter description | Variable              | Value                         | Value description |\n",
-    "|:---------:|:----------------------|:---------------------:|:-----------------------------:|:------------------|\n",
-    "|           |                       | dt                    | 0.1                           |                   |"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "id": "41edb350-36c3-4e19-829e-40d6ca9633a0",
-   "metadata": {},
-   "outputs": [],
-   "source": [
+    "              'rng_seed': 1} # global random seed\n",
+    "\n",
+    "# Theory paramters (theory_params)\n",
     "theory_params = {'dt': 0.1}"
    ]
   },
@@ -405,7 +329,7 @@
    "id": "de4a6703",
    "metadata": {},
    "source": [
-    "## Instantiate a multi-area model and analyse <a class=\"anchor\" id=\"section_5\"></a>"
+    "## S2. Multi-area model instantiation and simulation <a class=\"anchor\" id=\"section_2\"></a>"
    ]
   },
   {
@@ -413,15 +337,75 @@
    "id": "1fd58841",
    "metadata": {},
    "source": [
-    "### 1. Insantiate a multi-area model <a class=\"anchor\" id=\"section_5.1\"></a>"
+    "### 2.1. Insantiate a multi-area model <a class=\"anchor\" id=\"section_2_1\"></a>"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 7,
    "id": "ab25f9f8",
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Initializing network from dictionary.\n",
+      "RAND_DATA_LABEL 3497\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "/srv/main-spack-instance-2302/spack/opt/spack/linux-ubuntu20.04-x86_64/gcc-10.3.0/py-numpy-1.21.6-6fewtq7oarp3vtwlxrrcofz5sxwt55s7/lib/python3.8/site-packages/numpy/core/fromnumeric.py:3440: RuntimeWarning:Mean of empty slice.\n",
+      "/srv/main-spack-instance-2302/spack/opt/spack/linux-ubuntu20.04-x86_64/gcc-10.3.0/py-numpy-1.21.6-6fewtq7oarp3vtwlxrrcofz5sxwt55s7/lib/python3.8/site-packages/numpy/core/_methods.py:189: RuntimeWarning:invalid value encountered in double_scalars\n",
+      "Error in library(\"aod\") : there is no package called ‘aod’\n",
+      "Execution halted\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "No R installation or IndexError, taking hard-coded SLN fit parameters.\n",
+      "\n",
+      "\n",
+      "========================================\n",
+      "Customized parameters\n",
+      "--------------------\n",
+      "{'K_scaling': 0.005,\n",
+      " 'N_scaling': 0.005,\n",
+      " 'connection_params': {'K_stable': 'K_stable.npy',\n",
+      "                       'av_indegree_V1': 3950.0,\n",
+      "                       'fac_nu_ext_5E': 1.125,\n",
+      "                       'fac_nu_ext_6E': 1.41666667,\n",
+      "                       'fac_nu_ext_TH': 1.2,\n",
+      "                       'g': -11.0,\n",
+      "                       'replace_non_simulated_areas': 'het_poisson_stat'},\n",
+      " 'fullscale_rates': 'tests/fullscale_rates.json',\n",
+      " 'input_params': {'rate_ext': 10.0},\n",
+      " 'neuron_params': {'V0_mean': -150.0, 'V0_sd': 50.0}}\n",
+      "========================================\n"
+     ]
+    },
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "/srv/main-spack-instance-2302/spack/var/spack/environments/ebrains-23-02/.spack-env/view/lib/python3.8/site-packages/dicthash/dicthash.py:47: UserWarning:Float too small for safe conversion tointeger. Rounding down to zero.\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Simulation label: 27d81076e6d6e9e591684be053078477\n",
+      "Copied files.\n",
+      "Initialized simulation class.\n"
+     ]
+    }
+   ],
    "source": [
     "M = MultiAreaModel(network_params, simulation=True,\n",
     "                   sim_spec=sim_params,\n",
@@ -434,15 +418,24 @@
    "id": "91649c30",
    "metadata": {},
    "source": [
-    "### 2. Predict firing rates from theory <a class=\"anchor\" id=\"section_5.2\"></a>"
+    "### 2.2. Predict firing rates from theory <a class=\"anchor\" id=\"section_2_2\"></a>"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 8,
    "id": "6a7ddf0e",
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Iteration: 0\n",
+      "Mean-field theory predicts an average rate of 29.588 spikes/s across all populations.\n"
+     ]
+    }
+   ],
    "source": [
     "p, r = M.theory.integrate_siegert()\n",
     "print(\"Mean-field theory predicts an average \"\n",
@@ -454,7 +447,7 @@
    "id": "2062ddf3",
    "metadata": {},
    "source": [
-    "### 3. Extract connectivity <a class=\"anchor\" id=\"section_5.3\"></a>"
+    "### 2.3. Extract connectivity <a class=\"anchor\" id=\"section_2_3\"></a>"
    ]
   },
   {
@@ -462,7 +455,9 @@
    "id": "8a7c09e0",
    "metadata": {},
    "source": [
-    "The connectivity and neuron numbers are stored in the attributes of the model class. Neuron numbers are stored in `M.N` as a dictionary (and in `M.N_vec` as an array), indegrees in `M.K` as a dictionary (and in `M.K_matrix` as an array). Number of synapses can also be access via `M.synapses` (and in `M.syn_matrix` as an array)."
+    "The connectivity and neuron numbers are stored in the attributes of the model class. Neuron numbers are stored in `M.N` as a dictionary (and in `M.N_vec` as an array), indegrees in `M.K` as a dictionary (and in `M.K_matrix` as an array). Number of synapses can also be access via `M.synapses` (and in `M.syn_matrix` as an array). <br>\n",
+    "\n",
+    "**Warning**: memory explosion"
    ]
   },
   {
@@ -470,19 +465,19 @@
    "id": "b7396606",
    "metadata": {},
    "source": [
-    "#### 3.1 Node indegrees"
+    "#### 2.3.1 Node indegrees"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 9,
    "id": "6316ac24",
    "metadata": {},
    "outputs": [],
    "source": [
     "# Dictionary of nodes indegrees organized as:\n",
     "# {<source_area>: {<source_pop>: {<target_area>: {<target_pop>: indegree_values}}}}\n",
-    "M.K"
+    "# M.K"
    ]
   },
   {
@@ -490,19 +485,19 @@
    "id": "253a2aba",
    "metadata": {},
    "source": [
-    "#### 3.2 Synapses"
+    "#### 2.3.2 Synapses"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 10,
    "id": "445a722a",
    "metadata": {},
    "outputs": [],
    "source": [
     "# Dictionary of synapses that target neurons receive, it is organized as:\n",
     "# {<source_area>: {<source_pop>: {<target_area>: {<target_pop>: number_of_synapses}}}}\n",
-    "M.synapses"
+    "# M.synapses"
    ]
   },
   {
@@ -526,15 +521,90 @@
    "id": "0c1cad59-81d0-4e24-ac33-13c4ca8c6dec",
    "metadata": {},
    "source": [
-    "## Run the simulation <a class=\"anchor\" id=\"section_6\"></a>"
+    "### 2.4. Run the simulation <a class=\"anchor\" id=\"section_2_4\"></a>"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 11,
    "id": "15778e9c",
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Prepared simulation in 0.00 seconds.\n",
+      "Rank 0: created area V1 with 0 local nodes\n",
+      "Memory after V1 : 1912.20 MB\n",
+      "Rank 0: created area V2 with 0 local nodes\n",
+      "Memory after V2 : 1938.80 MB\n",
+      "Rank 0: created area VP with 0 local nodes\n",
+      "Memory after VP : 1967.95 MB\n",
+      "Rank 0: created area V3 with 0 local nodes\n",
+      "Memory after V3 : 1996.29 MB\n",
+      "Rank 0: created area V3A with 0 local nodes\n",
+      "Memory after V3A : 2016.27 MB\n",
+      "Rank 0: created area MT with 0 local nodes\n",
+      "Memory after MT : 2041.77 MB\n",
+      "Rank 0: created area V4t with 0 local nodes\n",
+      "Memory after V4t : 2066.75 MB\n",
+      "Rank 0: created area V4 with 0 local nodes\n",
+      "Memory after V4 : 2093.70 MB\n",
+      "Rank 0: created area VOT with 0 local nodes\n",
+      "Memory after VOT : 2119.05 MB\n",
+      "Rank 0: created area MSTd with 0 local nodes\n",
+      "Memory after MSTd : 2140.52 MB\n",
+      "Rank 0: created area PIP with 0 local nodes\n",
+      "Memory after PIP : 2161.88 MB\n",
+      "Rank 0: created area PO with 0 local nodes\n",
+      "Memory after PO : 2183.38 MB\n",
+      "Rank 0: created area DP with 0 local nodes\n",
+      "Memory after DP : 2203.54 MB\n",
+      "Rank 0: created area MIP with 0 local nodes\n",
+      "Memory after MIP : 2225.19 MB\n",
+      "Rank 0: created area MDP with 0 local nodes\n",
+      "Memory after MDP : 2246.54 MB\n",
+      "Rank 0: created area VIP with 0 local nodes\n",
+      "Memory after VIP : 2268.48 MB\n",
+      "Rank 0: created area LIP with 0 local nodes\n",
+      "Memory after LIP : 2292.54 MB\n",
+      "Rank 0: created area PITv with 0 local nodes\n",
+      "Memory after PITv : 2317.88 MB\n",
+      "Rank 0: created area PITd with 0 local nodes\n",
+      "Memory after PITd : 2343.10 MB\n",
+      "Rank 0: created area MSTl with 0 local nodes\n",
+      "Memory after MSTl : 2364.56 MB\n",
+      "Rank 0: created area CITv with 0 local nodes\n",
+      "Memory after CITv : 2383.62 MB\n",
+      "Rank 0: created area CITd with 0 local nodes\n",
+      "Memory after CITd : 2402.95 MB\n",
+      "Rank 0: created area FEF with 0 local nodes\n",
+      "Memory after FEF : 2424.42 MB\n",
+      "Rank 0: created area TF with 0 local nodes\n",
+      "Memory after TF : 2440.07 MB\n",
+      "Rank 0: created area AITv with 0 local nodes\n",
+      "Memory after AITv : 2462.74 MB\n",
+      "Rank 0: created area FST with 0 local nodes\n",
+      "Memory after FST : 2479.47 MB\n",
+      "Rank 0: created area 7a with 0 local nodes\n",
+      "Memory after 7a : 2500.68 MB\n",
+      "Rank 0: created area STPp with 0 local nodes\n",
+      "Memory after STPp : 2519.40 MB\n",
+      "Rank 0: created area STPa with 0 local nodes\n",
+      "Memory after STPa : 2538.59 MB\n",
+      "Rank 0: created area 46 with 0 local nodes\n",
+      "Memory after 46 : 2553.95 MB\n",
+      "Rank 0: created area AITd with 0 local nodes\n",
+      "Memory after AITd : 2576.51 MB\n",
+      "Rank 0: created area TH with 0 local nodes\n",
+      "Memory after TH : 2589.22 MB\n",
+      "Created areas and internal connections in 2.15 seconds.\n",
+      "Created cortico-cortical connections in 22.44 seconds.\n",
+      "Simulated network in 59.50 seconds.\n"
+     ]
+    }
+   ],
    "source": [
     "# run the simulation, depending on the model parameter and downscale ratio, the running time varies largely.\n",
     "M.simulation.simulate()"
@@ -561,7 +631,7 @@
    "id": "28e071f8",
    "metadata": {},
    "source": [
-    "## Simulation results analysis <a class=\"anchor\" id=\"section_7\"></a>"
+    "## S3. Data processing and simulation results analysis <a class=\"anchor\" id=\"section_3\"></a>"
    ]
   },
   {
@@ -574,7 +644,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 12,
    "id": "dc3b1820",
    "metadata": {},
    "outputs": [],
@@ -609,17 +679,17 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 13,
    "id": "e7eb052e",
    "metadata": {},
    "outputs": [],
    "source": [
-    "conns = nest.GetConnections()\n",
-    "conns_sparse_matrix = conns.get(['source', 'target', 'weight'])\n",
+    "# conns = nest.GetConnections()\n",
+    "# conns_sparse_matrix = conns.get(['source', 'target', 'weight'])\n",
     "\n",
-    "srcs = conns_sparse_matrix['source']\n",
-    "tgts = conns_sparse_matrix['target']\n",
-    "weights = conns_sparse_matrix['weight']"
+    "# srcs = conns_sparse_matrix['source']\n",
+    "# tgts = conns_sparse_matrix['target']\n",
+    "# weights = conns_sparse_matrix['weight']"
    ]
   },
   {
@@ -632,42 +702,18 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 14,
    "id": "902f2800",
    "metadata": {},
    "outputs": [],
    "source": [
-    "# Open the file using a with statement\n",
-    "with open(os.path.join(M.simulation.data_dir,\"recordings/network_gids.txt\"), \"r\") as file:\n",
-    "    # Read the contents of the file\n",
-    "    gids = file.read()\n",
+    "# # Open the file using a with statement\n",
+    "# with open(os.path.join(M.simulation.data_dir,\"recordings/network_gids.txt\"), \"r\") as file:\n",
+    "#     # Read the contents of the file\n",
+    "#     gids = file.read()\n",
     "\n",
-    "# Print the contents\n",
-    "print(gids)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "875263c1",
-   "metadata": {},
-   "source": [
-    "Go back to [Notebook structure](#toc)"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "e96a754e-7e51-4892-966b-d9bd03d63e91",
-   "metadata": {},
-   "source": [
-    "<br>"
-   ]
-  },
-  {
-   "cell_type": "markdown",
-   "id": "9be9287d-4891-4b4b-bd19-cfc2ebed02ac",
-   "metadata": {},
-   "source": [
-    "## Load and process data of simulation results"
+    "# # Print the contents\n",
+    "# print(gids)"
    ]
   },
   {
@@ -680,7 +726,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 15,
    "id": "cb8e3edd",
    "metadata": {},
    "outputs": [],
@@ -698,7 +744,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 16,
    "id": "9590223b",
    "metadata": {},
    "outputs": [],
@@ -709,18 +755,26 @@
   },
   {
    "cell_type": "markdown",
-   "id": "ca603daf",
+   "id": "b1320ab1",
    "metadata": {},
    "source": [
     "Go back to [Notebook structure](#toc)"
    ]
   },
+  {
+   "cell_type": "markdown",
+   "id": "529b1ade",
+   "metadata": {},
+   "source": [
+    "<br>"
+   ]
+  },
   {
    "cell_type": "markdown",
    "id": "57ff902c-d6ce-4f96-9e4f-8e3e7166ab66",
    "metadata": {},
    "source": [
-    "## Simulation results visualization"
+    "## S4. Simulation results visualization <a class=\"anchor\" id=\"section_4\"></a>"
    ]
   },
   {
@@ -728,15 +782,39 @@
    "id": "38ddd973",
    "metadata": {},
    "source": [
-    "### 1. Instantaneous and mean rate"
+    "### 4.1. Instantaneous and mean rate\n",
+    "avaerage over all areas"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 17,
    "id": "bea30fc8",
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "<matplotlib.legend.Legend at 0x7fbae4abbfa0>"
+      ]
+     },
+     "execution_count": 17,
+     "metadata": {},
+     "output_type": "execute_result"
+    },
+    {
+     "data": {
+      "image/png": "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\n",
+      "text/plain": [
+       "<Figure size 432x288 with 1 Axes>"
+      ]
+     },
+     "metadata": {
+      "needs_background": "light"
+     },
+     "output_type": "display_data"
+    }
+   ],
    "source": [
     "fig, ax = plt.subplots()\n",
     "ax.plot(tsteps, rate)\n",
@@ -749,6 +827,193 @@
     "ax.legend()"
    ]
   },
+  {
+   "cell_type": "markdown",
+   "id": "ae19bcc3",
+   "metadata": {},
+   "source": [
+    "### 4.2 Raster plot of spiking activity for single area\n",
+    "Raster plot of spiking activity of 3% of the neurons in area V1 (A), V2 (B), and FEF (C). Blue: excitatory neurons, red: inhibitory neurons. (D-F) Spiking statistics across all 32 areas for the respective populations shown as area-averaged box plots. Crosses: medians, boxes: interquartile range (IQR), whiskers extend to the most extremeobservat ions within 1.5×IQR beyond the IQR."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 18,
+   "id": "1da18fee",
+   "metadata": {},
+   "outputs": [
+    {
+     "ename": "AttributeError",
+     "evalue": "'MultiAreaModel' object has no attribute 'analysis'",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[0;31mAttributeError\u001b[0m                            Traceback (most recent call last)",
+      "Input \u001b[0;32mIn [18]\u001b[0m, in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m     20\u001b[0m area \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mV1\u001b[39m\u001b[38;5;124m'\u001b[39m\n\u001b[1;32m     21\u001b[0m frac_neurons \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m0.03\u001b[39m\n\u001b[0;32m---> 22\u001b[0m \u001b[43mM\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43manalysis\u001b[49m\u001b[38;5;241m.\u001b[39msingle_dot_display(area,  frac_neurons, t_min\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m500.\u001b[39m, t_max\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mT\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m     24\u001b[0m area \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mV2\u001b[39m\u001b[38;5;124m'\u001b[39m\n\u001b[1;32m     25\u001b[0m frac_neurons \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m0.03\u001b[39m\n",
+      "\u001b[0;31mAttributeError\u001b[0m: 'MultiAreaModel' object has no attribute 'analysis'"
+     ]
+    }
+   ],
+   "source": [
+    "\"\"\"\n",
+    "Create raster display of a single area with populations stacked\n",
+    "onto each other. Excitatory neurons in blue, inhibitory\n",
+    "neurons in red.\n",
+    "\n",
+    "Parameters\n",
+    "----------\n",
+    "area : string {area}\n",
+    "    Area to be plotted.\n",
+    "frac_neurons : float, [0,1]\n",
+    "    Fraction of cells to be considered.\n",
+    "t_min : float, optional\n",
+    "    Minimal time in ms of spikes to be shown. Defaults to 0 ms.\n",
+    "t_max : float, optional\n",
+    "    Minimal time in ms of spikes to be shown. Defaults to simulation time.\n",
+    "output : {'pdf', 'png', 'eps'}, optional\n",
+    "    If given, the function stores the plot to a file of the given format.\n",
+    "\n",
+    "\"\"\"\n",
+    "\n",
+    "    def init_analysis(self, ana_spec):\n",
+    "        assert(hasattr(self, 'simulation'))\n",
+    "        if 'load_areas' in ana_spec:\n",
+    "            load_areas = ana_spec['load_areas']\n",
+    "        else:\n",
+    "            load_areas = None\n",
+    "        if 'data_list' in ana_spec:\n",
+    "            data_list = ana_spec['data_list']\n",
+    "        else:\n",
+    "            data_list = ['spikes']\n",
+    "        self.analysis = Analysis(self, self.simulation,\n",
+    "                                 data_list=data_list,\n",
+    "                                 load_areas=load_areas)\n",
+    "        \n",
+    "area = 'V1'\n",
+    "frac_neurons = 0.03\n",
+    "M.analysis.single_dot_display(area,  frac_neurons, t_min=500., t_max='T')\n",
+    "\n",
+    "area = 'V2'\n",
+    "frac_neurons = 0.03\n",
+    "M.analysis.single_dot_display(area,  frac_neurons, t_min=500., t_max='T')\n",
+    "\n",
+    "area = 'FEF'\n",
+    "frac_neurons = 0.03\n",
+    "M.analysis.single_dot_display(area,  frac_neurons, t_min=500., t_max='T')"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "019d805e",
+   "metadata": {},
+   "source": [
+    "### 4.3 Population-averaged firing rates"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "95c57114",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "\"\"\"\n",
+    "Calculate time-averaged population rates and store them in member pop_rates.\n",
+    "If the rates had previously been stored with the same\n",
+    "parameters, they are loaded from file.\n",
+    "\n",
+    "Parameters\n",
+    "----------\n",
+    "t_min : float, optional\n",
+    "    Minimal time in ms of the simulation to take into account\n",
+    "    for the calculation. Defaults to 500 ms.\n",
+    "t_max : float, optional\n",
+    "    Maximal time in ms of the simulation to take into account\n",
+    "    for the calculation. Defaults to the simulation time.\n",
+    "compute_stat : bool, optional\n",
+    "    If set to true, the mean and variance of the population rate\n",
+    "    is calculated. Defaults to False.\n",
+    "    Caution: Setting to True slows down the computation.\n",
+    "areas : list, optional\n",
+    "    Which areas to include in the calculcation.\n",
+    "    Defaults to all loaded areas.\n",
+    "pops : list or {'complete'}, optional\n",
+    "    Which populations to include in the calculation.\n",
+    "    If set to 'complete', all populations the respective areas\n",
+    "    are included. Defaults to 'complete'.\n",
+    "\"\"\"\n",
+    "M.analysis.create_pop_rates(t_min=1000.)\n",
+    "# M.analysis.save()"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "06a595de",
+   "metadata": {},
+   "source": [
+    "### 4.4 Average pairwise correlation coefficients of spiking activity"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "a3847e67",
+   "metadata": {},
+   "source": [
+    "### 4.5 Irregularity measured by revised local variation LvR averaged across neurons"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "90ae8f4c",
+   "metadata": {},
+   "source": [
+    "### 4.6 Time series of population- and area-averaged firing rates\n",
+    "Area-averaged firing rates, shown as raw binned spike histograms with 1ms bin width (gray) and convolved histograms, with aGaussian kernel (black) of optimal width"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "bd9d4912",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "\"\"\"\n",
+    "Calculate time series of population- and area-averaged firing rates.\n",
+    "Uses ah.pop_rate_time_series.\n",
+    "If the rates have previously been stored with the\n",
+    "same parameters, they are loaded from file.\n",
+    "\n",
+    "\n",
+    "Parameters\n",
+    "----------\n",
+    "t_min : float, optional\n",
+    "    Minimal time in ms of the simulation to take into account\n",
+    "    for the calculation. Defaults to 500 ms.\n",
+    "t_max : float, optional\n",
+    "    Maximal time in ms of the simulation to take into account\n",
+    "    for the calculation. Defaults to the simulation time.\n",
+    "areas : list, optional\n",
+    "    Which areas to include in the calculcation.\n",
+    "    Defaults to all loaded areas.\n",
+    "pops : list or {'complete'}, optional\n",
+    "    Which populations to include in the calculation.\n",
+    "    If set to 'complete', all populations the respective areas\n",
+    "    are included. Defaults to 'complete'.\n",
+    "kernel : {'gauss_time_window', 'alpha_time_window', 'rect_time_window'}, optional\n",
+    "    Specifies the kernel to be convolved with the spike histogram.\n",
+    "    Defaults to 'binned', which corresponds to no convolution.\n",
+    "resolution: float, optional\n",
+    "    Width of the convolution kernel. Specifically it correponds to:\n",
+    "    - 'binned' : bin width of the histogram\n",
+    "    - 'gauss_time_window' : sigma\n",
+    "    - 'alpha_time_window' : time constant of the alpha function\n",
+    "    - 'rect_time_window' : width of the moving rectangular function\n",
+    "\"\"\"\n",
+    "M.analysisi.create_rate_time_series(t_max=1000.)\n",
+    "# M.analysis.save()"
+   ]
+  },
   {
    "cell_type": "markdown",
    "id": "ef74ca3e-98dc-49c9-a4a0-2c640e29b1d9",
diff --git a/multi-area-model.ipynb b/multi-area-model.ipynb
index c3a3036d2dcb7e59afd3bcc21e86f7a42265e538..ca06226bdef60d7f794a8fe162ad87ae7d43b7bd 100644
--- a/multi-area-model.ipynb
+++ b/multi-area-model.ipynb
@@ -41,6 +41,7 @@
    "cell_type": "markdown",
    "id": "d782e527",
    "metadata": {
+    "jp-MarkdownHeadingCollapsed": true,
     "tags": []
    },
    "source": [
@@ -202,12 +203,12 @@
    "id": "4f67c1ba",
    "metadata": {},
    "source": [
-    "|Parameter                         |Variable                    |Value               |Value description  |\n",
-    "|:--------------------------------:|:--------------------------:|:------------------:|:------------------|\n",
-    "|Scaling factor                    |scale_down_to               |0.005               |$^1$               |\n",
-    "|Ground state to metastable state  |cc_weights_factor           |1.0                 |$^2$               |\n",
-    "|Replace non-simulated areas       |replace_non_simulated_areas |'het_poisson_stat'  |$^3$               |\n",
-    "|Simulation areas                  |sim_areas                   |                    |$^4$               |"
+    "|Parameter                     |Default value            |Value range/options                                                   |Value assigned      |Description  |\n",
+    "|:----------------------------:|:-----------------------:|:--------------------------------------------------------------------:|:------------------:|:-----------:|\n",
+    "|scale_down_to                 |1.                       |(0, 1.]                                                               |0.005               |$^1$         |\n",
+    "|cc_weights_factor             |1.                       |(0, 1.]                                                               |1.                  |$^2$         |\n",
+    "|areas_simulated               |complete_area_list       |All sublists of complete_area_list                                    |complete_area_list  |$^3$         |\n",
+    "|replace_non_simulated_areas   |None                     |None, 'hom_poisson_stat', 'het_poisson_stat', 'het_current_nonstat'   |'het_poisson_stat'  |$^4$         |"
    ]
   },
   {
@@ -215,16 +216,16 @@
    "id": "a2161477",
    "metadata": {},
    "source": [
-    "1. Scaling factor (`scale_down_to`) <br>\n",
-    "Scaling factor (scale_down_to) is the parameter which defines the the ratio of the full scale multi-area model being down-scaled to a model with fewer neurons and indegrees so as to be simulated on machines with lower computational ability and the simulation results can be obtained within relative shorter period of time.\n",
-    "Neurons and indegrees are both scaled down to 0.5%, where the model can usually be simulated on a local machine.<br> \n",
-    "**Warning**: This will not yield reasonable dynamical results from the network and is only meant to demonstrate the simulation workflow <br> \n",
-    "2. Ground state to metastable state (`cc_weights_factor`) <br>\n",
-    "Ground state to metastable state (cc_weights_factor) decides the switch of the model from ground state to metastable state. <br>\n",
-    "3. Replace non-simulated areas (`replace_non_simulated_areas`) <br>\n",
-    "Replace non-simulated areas (replace_non_simulated_areas) defines how non-simulated areas will be replaced. <br>\n",
-    "4. Simulation areas (`simulation_areas`) <br>\n",
-    "Simulation areas (simulation_areas) specify the cortical areas included in the simulation process."
+    "1. `scale_down_to` <br>\n",
+    "`scale_down_to` is the down-scaling factor which defines the the ratio of the full scale multi-area model being down-scaled to a model with fewer neurons and indegrees so as to be simulated on machines with lower computational ability and the simulation results can be obtained within relative shorter period of time. <br> Its deafualt value if 1. meaning full scale simulation. <br> In the pre-set downscale version, it's set as 0.005, where the numer of neurons and indegrees are both scaled down to 0.5% of its full scale amount, where the model can usually be simulated on a local machine. <br> **Warning**: This will not yield reasonable dynamical results from the network and is only meant to demonstrate the simulation workflow <br> \n",
+    "2. `cc_weights_factor` <br>\n",
+    "This scaling factor controls the cortico-cortical synaptic strength. <br> By default it's set as 1.0, where the inter-area synaptic strength is the same as the intra-areal. <br> **Important**: This factor changes the network activity from ground state to metastable state. <br>\n",
+    "3. `areas_simulated` <br>\n",
+    "This parameter specifies the cortical areas included in the simulation process. Its default value is `complete_area_list` meaning all the areas in the complete_area_list will be actually simulated. <br>\n",
+    "complete_area_list = ['V1', 'V2', 'VP', 'V3', 'V3A', 'MT', 'V4t', 'V4', 'VOT', 'MSTd', 'PIP', 'PO', 'DP', 'MIP', 'MDP', 'VIP', 'LIP', 'PITv', 'PITd', 'MSTl', 'CITv', 'CITd', 'FEF', 'TF', 'AITv', 'FST', '7a', 'STPp', 'STPa', '46', 'AITd', 'TH'] <br>\n",
+    "The value assigned to simulation_areas can be any sublist of the `compete_area_list` specifying areas a user want to include in his/her simulation. <br>\n",
+    "4. `replace_non_simulated_areas` <br>\n",
+    "The paramter `replace_non_simulated_areas` defines how non-simulated areas will be replaced. <br> It's set as None by default when the parameter areas_simulated is set as full_area_list where all areas will be simulated so that no areas need to be replaced. <br> Other options are: 'hom_poisson_stat', 'het_poisson_stat', and 'het_current_nonstat'. 'hom_poisson_stat' is a manually set parameter which can be tuned. When it's set as 'het_poisson_stat' or 'het_current_nonstat', the data to replace the cortico-cortical input is loaded from 'replace_cc_input_source' which is the firing rates of our full scale simulation results. The differenc between 'het_poisson_stat' and 'het_current_nonstat' is that 'het_poisson_stat' is the mean of the time-series firing rate so that it's static, yet 'het_current_nonstat' is time-varying specific current, which is varying by time. "
    ]
   },
   {
@@ -234,14 +235,17 @@
    "metadata": {},
    "outputs": [],
    "source": [
-    "# Model parameters\n",
-    "# Model paramters are most important among all the paramters, it directly affect the model itself and thus have a great impact on the simulation results. Model paramters define the connection, input, neuron, and network charateristics of the model, and therefore fall into four categories: **Connection paramters**, **Input paramters**, **Neuron paramters**, and **Network paramters**.\n",
+    "# Downscaling factor\n",
     "scale_down_to = 0.005 # Change it to 1. for running the fullscale network\n",
+    "\n",
     "# Scaling factor for cortico-cortical connections (chi) \n",
-    "# This scaling factor controls the cortico-cortical synaptic strength. If it is 1.0 then the inter-area synaptic strength is the same as the intra-areal. This factor changes the network activity from ground to metastable.\n",
     "cc_weights_factor = 1.\n",
-    "replace_non_simulated_areas = 'het_poisson_stat'\n",
-    "# sim_areas = "
+    "\n",
+    "# Cortical areas included in the simulation\n",
+    "areas_simulated = ['V1', 'V2', 'VP', 'V3', 'V3A', 'MT', 'V4t', 'V4', 'VOT', 'MSTd', 'PIP', 'PO', 'DP', 'MIP', 'MDP', 'VIP', 'LIP', 'PITv', 'PITd', 'MSTl', 'CITv', 'CITd', 'FEF', 'TF', 'AITv', 'FST', '7a', 'STPp', 'STPa', '46', 'AITd', 'TH']\n",
+    "\n",
+    "# Firing rates used to replace the non-simulated areas\n",
+    "replace_non_simulated_areas = 'het_poisson_stat'"
    ]
   },
   {
@@ -250,8 +254,7 @@
    "metadata": {},
    "source": [
     "### 1.2. Default parameters <a class=\"anchor\" id=\"section_1_2\"></a>\n",
-    "Default parameters ...<br>\n",
-    "We try out best not to confuse users with too many parameters. However, if you want to change the default parameters, you can do so by passing a dictionary to the `default_params` argument of the `MultiAreaModel` class."
+    "We try our best not to confuse users with too many parameters. However, if you want to change more parameters and explore the model, you can do so by passing a dictionary to the `default_params` argument of the `MultiAreaModel` class."
    ]
   },
   {