diff --git a/README.md b/README.md
index df52b48..7c24a2e 100644
--- a/README.md
+++ b/README.md
@@ -1171,7 +1171,6 @@
 ```
 {
   "os_pkg": {"htop": "2.0.1-1ubuntu1", "python-mysqldb": "1.3.7-1build2"},
-  "pip2": {"requests": "N/A", "configparser": "N/A"},
   "pip3": {"configparser": "N/A"},
   "r_pkg": {"rmarkdown": "1.5"},
   "others": {"Keras": "N/A"}
@@ -1190,7 +1189,7 @@
 | notebook\_instance\_name      | Name of the Notebook instance to terminate                                           |
 | aws\_region                   | AWS region where infrastructure was deployed                                         |
 | application                   | Type of the notebook template (jupyter/rstudio/zeppelin/tensor/deeplearning)         |
-| libs                          | List of additional libraries in JSON format with type (os_pkg/pip2/pip3/r_pkg/others)|
+| libs                          | List of additional libraries in JSON format with type (os_pkg/pip3/r_pkg/others)|
 | action                        | lib_install                                                                          |
 
 **Example** of additional_libs parameter:
@@ -1201,7 +1200,6 @@
   "libs": [
     {"group": "os_pkg", "name": "nmap"},
     {"group": "os_pkg", "name": "htop"},
-    {"group": "pip2", "name": "requests"},
     {"group": "pip3", "name": "configparser"},
     {"group": "r_pkg", "name": "rmarkdown"},
     {"group": "others", "name": "Keras"}
@@ -1237,7 +1235,7 @@
 | notebook\_instance\_name      | Name of the Notebook instance to terminate                                           |
 | azure\_resource\_group\_name  | Name of the resource group where all DataLab resources are being provisioned            |
 | application                   | Type of the notebook template (jupyter/rstudio/zeppelin/tensor/deeplearning)         |
-| libs                          | List of additional libraries in JSON format with type (os_pkg/pip2/pip3/r_pkg/others)|
+| libs                          | List of additional libraries in JSON format with type (os_pkg/pip3/r_pkg/others)|
 | action                        | lib_install                                                                          |
 </details>
 
@@ -1269,7 +1267,7 @@
 | gcp\_project\_id              | ID of GCP project                                                                    |
 | gcp\_zone                     | GCP zone name                                                                        |
 | application                   | Type of the notebook template (jupyter/rstudio/zeppelin/tensor/deeplearning)         |
-| libs                          | List of additional libraries in JSON format with type (os_pkg/pip2/pip3/r_pkg/others)|
+| libs                          | List of additional libraries in JSON format with type (os_pkg/pip3/r_pkg/others)|
 | action                        | lib_install                                                                          |
 </details>
 
@@ -1462,7 +1460,6 @@
 ```
 {
   "os_pkg": {"htop": "2.0.1-1ubuntu1", "python-mysqldb": "1.3.7-1build2"},
-  "pip2": {"requests": "N/A", "configparser": "N/A"},
   "pip3": {"configparser": "N/A"},
   "r_pkg": {"rmarkdown": "1.5"},
   "others": {"Keras": "N/A"}
@@ -1480,7 +1477,7 @@
 | computational\_id             | Name of Dataengine-service                                                           |
 | aws\_region                   | AWS region where infrastructure was deployed                                         |
 | application                   | Type of the notebook template (jupyter/rstudio/zeppelin/tensor/deeplearning)         |
-| libs                          | List of additional libraries in JSON format with type (os_pkg/pip2/pip3/r_pkg/others)|
+| libs                          | List of additional libraries in JSON format with type (os_pkg/pip3/r_pkg/others)|
 | action                        | lib_install                                                                          |
 
 **Example** of additional_libs parameter:
@@ -1491,7 +1488,6 @@
   "libs": [
     {"group": "os_pkg", "name": "nmap"},
     {"group": "os_pkg", "name": "htop"},
-    {"group": "pip2", "name": "requests"},
     {"group": "pip3", "name": "configparser"},
     {"group": "r_pkg", "name": "rmarkdown"},
     {"group": "others", "name": "Keras"}
@@ -1678,7 +1674,6 @@
 ```
 {
   "os_pkg": {"htop": "2.0.1-1ubuntu1", "python-mysqldb": "1.3.7-1build2"},
-  "pip2": {"requests": "N/A", "configparser": "N/A"},
   "pip3": {"configparser": "N/A"},
   "r_pkg": {"rmarkdown": "1.5"},
   "others": {"Keras": "N/A"}
@@ -1706,7 +1701,6 @@
   "libs": [
     {"group": "os_pkg", "name": "nmap"},
     {"group": "os_pkg", "name": "htop"},
-    {"group": "pip2", "name": "requests"},
     {"group": "pip3", "name": "configparser"},
     {"group": "r_pkg", "name": "rmarkdown"},
     {"group": "others", "name": "Keras"}
diff --git a/infrastructure-provisioning/src/general/files/aws/deeplearning_description.json b/infrastructure-provisioning/src/general/files/aws/deeplearning_description.json
index 891cc5e..06f671a 100644
--- a/infrastructure-provisioning/src/general/files/aws/deeplearning_description.json
+++ b/infrastructure-provisioning/src/general/files/aws/deeplearning_description.json
@@ -8,7 +8,7 @@
   "exploratory_environment_versions" :
   [
     {
-      "template_name": "Deep Learning AMI (Ubuntu 18.04) Version 42.1",
+      "template_name": "Deep Learning AMI Version 42.1",
       "description": "MXNet-1.8.0 & 1.7.0, TensorFlow-2.4.1, 2.1.3 & 1.15.5, PyTorch-1.4.0 & 1.8.0, Neuron, & others. NVIDIA CUDA, cuDNN, NCCL, Intel MKL-DNN, Docker, NVIDIA-Docker & EFA support. Uses Anaconda virtual environments, configured to keep the different framework installations separate and easy to switch between frameworks as Jupyter kernels.",
       "environment_type": "exploratory",
       "version": "Deep Learning AMI (Ubuntu 18.04) Version 42.1",
diff --git a/infrastructure-provisioning/src/general/files/aws/tensor-rstudio_description.json b/infrastructure-provisioning/src/general/files/aws/tensor-rstudio_description.json
index 31b350d..51fc3a4 100644
--- a/infrastructure-provisioning/src/general/files/aws/tensor-rstudio_description.json
+++ b/infrastructure-provisioning/src/general/files/aws/tensor-rstudio_description.json
@@ -8,10 +8,10 @@
   "exploratory_environment_versions" :
   [
     {
-      "template_name": "RStudio with TensorFlow 2.1.0",
+      "template_name": "RStudio with TensorFlow 2.5.0",
       "description": "Base image with TensorFlow and RStudio node creation routines",
       "environment_type": "exploratory",
-      "version": "tensorflow_gpu-2.1.0",
+      "version": "tensorflow_gpu-2.5.0",
       "vendor": "AWS"
     }
   ]
diff --git a/infrastructure-provisioning/src/general/files/aws/tensor_description.json b/infrastructure-provisioning/src/general/files/aws/tensor_description.json
index 82a7f4f..20402e6 100644
--- a/infrastructure-provisioning/src/general/files/aws/tensor_description.json
+++ b/infrastructure-provisioning/src/general/files/aws/tensor_description.json
@@ -8,10 +8,10 @@
   "exploratory_environment_versions" :
   [
     {
-      "template_name": "Jupyter with TensorFlow 2.3.2",
+      "template_name": "Jupyter with TensorFlow 2.5.0",
       "description": "Base image with TensorFlow and Jupyter node creation routines",
       "environment_type": "exploratory",
-      "version": "tensorflow_gpu-2.3.2",
+      "version": "tensorflow_gpu-2.5.0",
       "vendor": "AWS"
     }
   ]
diff --git a/infrastructure-provisioning/src/general/files/azure/tensor_description.json b/infrastructure-provisioning/src/general/files/azure/tensor_description.json
index 4c05654..3a89e60 100644
--- a/infrastructure-provisioning/src/general/files/azure/tensor_description.json
+++ b/infrastructure-provisioning/src/general/files/azure/tensor_description.json
@@ -8,10 +8,10 @@
   "exploratory_environment_versions" :
   [
     {
-      "template_name": "Jupyter with TensorFlow 2.3.2",
+      "template_name": "Jupyter with TensorFlow 2.5.0",
       "description": "Base image with TensorFlow and Jupyter node creation routines",
       "environment_type": "exploratory",
-      "version": "tensorflow_gpu-2.3.2",
+      "version": "tensorflow_gpu-2.5.0",
       "vendor": "Azure"
     }
   ]
diff --git a/infrastructure-provisioning/src/general/files/gcp/tensor-rstudio_description.json b/infrastructure-provisioning/src/general/files/gcp/tensor-rstudio_description.json
index 39335d3..14f33eb 100644
--- a/infrastructure-provisioning/src/general/files/gcp/tensor-rstudio_description.json
+++ b/infrastructure-provisioning/src/general/files/gcp/tensor-rstudio_description.json
@@ -27,10 +27,10 @@
   },
   "exploratory_environment_versions": [
     {
-      "template_name": "RStudio with TensorFlow 2.1.0",
+      "template_name": "RStudio with TensorFlow 2.5.0",
       "description": "Base image with TensorFlow and RStudio node creation routines",
       "environment_type": "exploratory",
-      "version": "tensorflow_gpu-2.1.0",
+      "version": "tensorflow_gpu-2.5.0",
       "vendor": "GCP"
     }
   ]
diff --git a/infrastructure-provisioning/src/general/files/gcp/tensor_description.json b/infrastructure-provisioning/src/general/files/gcp/tensor_description.json
index eebc7fd..8561110 100644
--- a/infrastructure-provisioning/src/general/files/gcp/tensor_description.json
+++ b/infrastructure-provisioning/src/general/files/gcp/tensor_description.json
@@ -10,10 +10,10 @@
   "exploratory_environment_versions" :
   [
     {
-      "template_name": "Jupyter with TensorFlow 2.1.0",
+      "template_name": "Jupyter with TensorFlow 2.5.0",
       "description": "Base image with TensorFlow and Jupyter node creation routines",
       "environment_type": "exploratory",
-      "version": "tensorflow_gpu-2.1.0",
+      "version": "tensorflow_gpu-2.5.0",
       "vendor": "GCP"
     }
   ]
diff --git a/infrastructure-provisioning/src/general/lib/os/debian/notebook_lib.py b/infrastructure-provisioning/src/general/lib/os/debian/notebook_lib.py
index 94c86a1..66bebfb 100644
--- a/infrastructure-provisioning/src/general/lib/os/debian/notebook_lib.py
+++ b/infrastructure-provisioning/src/general/lib/os/debian/notebook_lib.py
@@ -279,10 +279,13 @@
     if not exists(datalab.fab.conn,'/home/{}/.ensure_dir/nvidia_ensured'.format(os_user)):
         try:
             # install nvidia drivers
-            datalab.fab.conn.sudo('wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin')
+            datalab.fab.conn.sudo(
+                'wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin')
             datalab.fab.conn.sudo('mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600')
-            datalab.fab.conn.sudo('apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub')
-            datalab.fab.conn.sudo('add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"')
+            datalab.fab.conn.sudo(
+                'wget https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda-repo-ubuntu2004-11-4-local_11.4.0-470.42.01-1_amd64.deb')
+            datalab.fab.conn.sudo('dpkg -i cuda-repo-ubuntu2004-11-4-local_11.4.0-470.42.01-1_amd64.deb')
+            datalab.fab.conn.sudo('apt-key add /var/cuda-repo-ubuntu2004-11-4-local/7fa2af80.pub')
             manage_pkg('update', 'remote', '')
             manage_pkg('-y install', 'remote', 'cuda')
             #clean space on disk
diff --git a/infrastructure-provisioning/src/general/scripts/aws/common_prepare_notebook.py b/infrastructure-provisioning/src/general/scripts/aws/common_prepare_notebook.py
index 270ae56..ad7f59d 100644
--- a/infrastructure-provisioning/src/general/scripts/aws/common_prepare_notebook.py
+++ b/infrastructure-provisioning/src/general/scripts/aws/common_prepare_notebook.py
@@ -80,7 +80,7 @@
                                                                       notebook_config['project_name'],
                                                                       notebook_config['endpoint_name'],
                                                                       notebook_config['exploratory_name'], args.uuid)
-        notebook_config['primary_disk_size'] = (lambda x: '30' if x == 'deeplearning' else '16')(
+        notebook_config['primary_disk_size'] = (lambda x: '100' if x == 'deeplearning' else '16')(
             os.environ['application'])
         notebook_config['role_profile_name'] = '{}-{}-{}-nb-de-profile'.format(
             notebook_config['service_base_name'], notebook_config['project_name'], notebook_config['endpoint_name'])
@@ -105,7 +105,7 @@
             os.environ['conf_os_family'])])
         image_id = datalab.meta_lib.get_ami_id_by_name(notebook_config['notebook_image_name'], 'available')
         if os.environ['conf_deeplearning_cloud_ami'] == 'true' and os.environ['application'] == 'deeplearning' and image_id == '':
-            image_id = datalab.meta_lib.get_ami_id(notebook_config['notebook_image_name'])
+            image_id = datalab.meta_lib.get_ami_id(os.environ['notebook_image_name'])
         if image_id != '':
             notebook_config['ami_id'] = image_id
             print('Pre-configured image found. Using: {}'.format(notebook_config['ami_id']))
diff --git a/infrastructure-provisioning/src/general/scripts/aws/deeplearning_configure.py b/infrastructure-provisioning/src/general/scripts/aws/deeplearning_configure.py
index 3b578e5..4c18945 100644
--- a/infrastructure-provisioning/src/general/scripts/aws/deeplearning_configure.py
+++ b/infrastructure-provisioning/src/general/scripts/aws/deeplearning_configure.py
@@ -345,8 +345,8 @@
                    "exploratory_url": [
                        {"description": "Jupyter",
                         "url": jupyter_notebook_access_url},
-                       {"description": "TensorBoard",
-                        "url": tensorboard_access_url},
+                       #{"description": "TensorBoard",
+                       # "url": tensorboard_access_url},
                        {"description": "Ungit",
                         "url": jupyter_ungit_access_url}#,
                        #{"description": "Jupyter (via tunnel)",
diff --git a/infrastructure-provisioning/src/general/scripts/azure/deeplearning_configure.py b/infrastructure-provisioning/src/general/scripts/azure/deeplearning_configure.py
index 88a2864..be91e28 100644
--- a/infrastructure-provisioning/src/general/scripts/azure/deeplearning_configure.py
+++ b/infrastructure-provisioning/src/general/scripts/azure/deeplearning_configure.py
@@ -360,8 +360,8 @@
                    "exploratory_url": [
                    {"description": "Jupyter",
                     "url": jupyter_notebook_access_url},
-                   {"description": "TensorBoard",
-                    "url": tensorboard_access_url},
+                   #{"description": "TensorBoard",
+                   # "url": tensorboard_access_url},
                    {"description": "Ungit",
                     "url": jupyter_ungit_access_url}#,
                    #{"description": "Jupyter (via tunnel)",
diff --git a/infrastructure-provisioning/src/general/scripts/gcp/dataengine-service_prepare.py b/infrastructure-provisioning/src/general/scripts/gcp/dataengine-service_prepare.py
index 83d8740..3229525 100644
--- a/infrastructure-provisioning/src/general/scripts/gcp/dataengine-service_prepare.py
+++ b/infrastructure-provisioning/src/general/scripts/gcp/dataengine-service_prepare.py
@@ -140,12 +140,12 @@
 
     subprocess.run("echo Waiting for changes to propagate; sleep 10", shell=True, check=True)
 
-    if 'masterGPUCount' in os.environ:
+    if 'master_gpu_count' in os.environ:
         dataproc_cluster = json.loads(open('/root/templates/dataengine-service_cluster_with_gpu.json').read())
-        dataproc_cluster['config']['masterConfig']['accelerators'][0]['acceleratorCount'] = int(os.environ['masterGPUCount'])
-        dataproc_cluster['config']['masterConfig']['accelerators'][0]['acceleratorTypeUri'] = os.environ['masterGPUType']
-        dataproc_cluster['config']['workerConfig']['accelerators'][0]['acceleratorCount'] = int(os.environ['slaveGPUCount'])
-        dataproc_cluster['config']['workerConfig']['accelerators'][0]['acceleratorTypeUri'] = os.environ['slaveGPUType']
+        dataproc_cluster['config']['masterConfig']['accelerators'][0]['acceleratorCount'] = int(os.environ['master_gpu_count'])
+        dataproc_cluster['config']['masterConfig']['accelerators'][0]['acceleratorTypeUri'] = os.environ['master_gpu_type']
+        dataproc_cluster['config']['workerConfig']['accelerators'][0]['acceleratorCount'] = int(os.environ['slave_gpu_count'])
+        dataproc_cluster['config']['workerConfig']['accelerators'][0]['acceleratorTypeUri'] = os.environ['slave_gpu_type']
         gpu_driver = 'gs://goog-dataproc-initialization-actions-{}/gpu/install_gpu_driver.sh'.format(dataproc_conf['region'])
         dataproc_cluster['config']['initializationActions'][0]['executableFile'] = gpu_driver
 
diff --git a/infrastructure-provisioning/src/general/scripts/gcp/deeplearning_configure.py b/infrastructure-provisioning/src/general/scripts/gcp/deeplearning_configure.py
index 6830d00..3be0192 100644
--- a/infrastructure-provisioning/src/general/scripts/gcp/deeplearning_configure.py
+++ b/infrastructure-provisioning/src/general/scripts/gcp/deeplearning_configure.py
@@ -286,7 +286,7 @@
         print("User key name: {}".format(notebook_config['project_name']))
         #print("TensorBoard URL: {}".format(tensorboard_url))
         #print("TensorBoard log dir: /var/log/tensorboard")
-        print("Jupyter URL: {}".format(jupyter_ip_url))
+        print("JupyterLab URL: {}".format(jupyter_ip_url))
         print("Ungit URL: {}".format(ungit_ip_url))
         print('SSH access (from Edge node, via IP address): ssh -i {0}.pem {1}@{2}'.format(
             notebook_config['key_name'], notebook_config['datalab_ssh_user'], ip_address))
@@ -300,7 +300,7 @@
                    "notebook_name": notebook_config['instance_name'],
                    "Action": "Create new notebook server",
                    "exploratory_url": [
-                       {"description": "Jupyter",
+                       {"description": "JupyterLab",
                         "url": jupyter_notebook_access_url},
                        #{"description": "TensorBoard",
                        # "url": tensorboard_access_url},
diff --git a/infrastructure-provisioning/src/general/templates/aws/jenkins_jobs/dataengine-service_install_additional_libs/config.xml b/infrastructure-provisioning/src/general/templates/aws/jenkins_jobs/dataengine-service_install_additional_libs/config.xml
index fdf7930..5c9c4b3 100644
--- a/infrastructure-provisioning/src/general/templates/aws/jenkins_jobs/dataengine-service_install_additional_libs/config.xml
+++ b/infrastructure-provisioning/src/general/templates/aws/jenkins_jobs/dataengine-service_install_additional_libs/config.xml
@@ -61,11 +61,10 @@
             [
               {"group": "os_pkg", "name": "nmap"},
               {"group": "os_pkg", "name": "htop"},
-              {"group": "pip2", "name": "requests"},
               {"group": "pip3", "name": "configparser"},
               {"group": "r_pkg", "name": "rmarkdown"},
             ]
-            Types: for OS - os_pkg, for Python - pip2/pip3, for R - r_pkg
+            Types: for OS - os_pkg, for Python - pip3, for R - r_pkg
             NOTE: You need to escape each double quote.
             For Example: {\"group\": \"os_pkg\", \"name\": \"htop\"}
           </description>
diff --git a/infrastructure-provisioning/src/general/templates/aws/jenkins_jobs/dataengine_install_additional_libs/config.xml b/infrastructure-provisioning/src/general/templates/aws/jenkins_jobs/dataengine_install_additional_libs/config.xml
index 9b3600e..abc6599 100644
--- a/infrastructure-provisioning/src/general/templates/aws/jenkins_jobs/dataengine_install_additional_libs/config.xml
+++ b/infrastructure-provisioning/src/general/templates/aws/jenkins_jobs/dataengine_install_additional_libs/config.xml
@@ -61,11 +61,10 @@
             [
               {"group": "os_pkg", "name": "nmap"},
               {"group": "os_pkg", "name": "htop"},
-              {"group": "pip2", "name": "requests"},
               {"group": "pip3", "name": "configparser"},
               {"group": "r_pkg", "name": "rmarkdown"},
             ]
-            Types: for OS - os_pkg, for Python - pip2/pip3, for R - r_pkg
+            Types: for OS - os_pkg, for Python - pip3, for R - r_pkg
             NOTE: You need to escape each double quote.
             For Example: {\"group\": \"os_pkg\", \"name\": \"htop\"}
           </description>
diff --git a/infrastructure-provisioning/src/general/templates/aws/jenkins_jobs/notebook_install_additional_libs/config.xml b/infrastructure-provisioning/src/general/templates/aws/jenkins_jobs/notebook_install_additional_libs/config.xml
index 52f5aae..719035d 100644
--- a/infrastructure-provisioning/src/general/templates/aws/jenkins_jobs/notebook_install_additional_libs/config.xml
+++ b/infrastructure-provisioning/src/general/templates/aws/jenkins_jobs/notebook_install_additional_libs/config.xml
@@ -65,11 +65,10 @@
             [
               {"group": "os_pkg", "name": "nmap"},
               {"group": "os_pkg", "name": "htop"},
-              {"group": "pip2", "name": "requests"},
               {"group": "pip3", "name": "configparser"},
               {"group": "r_pkg", "name": "rmarkdown"},
             ]
-            Types: for OS - os_pkg, for Python - pip2/pip3, for R - r_pkg
+            Types: for OS - os_pkg, for Python - pip3, for R - r_pkg
             NOTE: You need to escape each double quote.
             For Example: {\"group\": \"os_pkg\", \"name\": \"htop\"}
           </description>
diff --git a/infrastructure-provisioning/src/general/templates/azure/jenkins_jobs/dataengine_install_additional_libs/config.xml b/infrastructure-provisioning/src/general/templates/azure/jenkins_jobs/dataengine_install_additional_libs/config.xml
index 9b3600e..abc6599 100644
--- a/infrastructure-provisioning/src/general/templates/azure/jenkins_jobs/dataengine_install_additional_libs/config.xml
+++ b/infrastructure-provisioning/src/general/templates/azure/jenkins_jobs/dataengine_install_additional_libs/config.xml
@@ -61,11 +61,10 @@
             [
               {"group": "os_pkg", "name": "nmap"},
               {"group": "os_pkg", "name": "htop"},
-              {"group": "pip2", "name": "requests"},
               {"group": "pip3", "name": "configparser"},
               {"group": "r_pkg", "name": "rmarkdown"},
             ]
-            Types: for OS - os_pkg, for Python - pip2/pip3, for R - r_pkg
+            Types: for OS - os_pkg, for Python - pip3, for R - r_pkg
             NOTE: You need to escape each double quote.
             For Example: {\"group\": \"os_pkg\", \"name\": \"htop\"}
           </description>
diff --git a/infrastructure-provisioning/src/general/templates/azure/jenkins_jobs/notebook_install_additional_libs/config.xml b/infrastructure-provisioning/src/general/templates/azure/jenkins_jobs/notebook_install_additional_libs/config.xml
index 52f5aae..719035d 100644
--- a/infrastructure-provisioning/src/general/templates/azure/jenkins_jobs/notebook_install_additional_libs/config.xml
+++ b/infrastructure-provisioning/src/general/templates/azure/jenkins_jobs/notebook_install_additional_libs/config.xml
@@ -65,11 +65,10 @@
             [
               {"group": "os_pkg", "name": "nmap"},
               {"group": "os_pkg", "name": "htop"},
-              {"group": "pip2", "name": "requests"},
               {"group": "pip3", "name": "configparser"},
               {"group": "r_pkg", "name": "rmarkdown"},
             ]
-            Types: for OS - os_pkg, for Python - pip2/pip3, for R - r_pkg
+            Types: for OS - os_pkg, for Python - pip3, for R - r_pkg
             NOTE: You need to escape each double quote.
             For Example: {\"group\": \"os_pkg\", \"name\": \"htop\"}
           </description>
diff --git a/infrastructure-provisioning/src/general/templates/gcp/jenkins_jobs/dataengine-service_install_additional_libs/config.xml b/infrastructure-provisioning/src/general/templates/gcp/jenkins_jobs/dataengine-service_install_additional_libs/config.xml
index 703803e..5ddce0c 100644
--- a/infrastructure-provisioning/src/general/templates/gcp/jenkins_jobs/dataengine-service_install_additional_libs/config.xml
+++ b/infrastructure-provisioning/src/general/templates/gcp/jenkins_jobs/dataengine-service_install_additional_libs/config.xml
@@ -65,11 +65,10 @@
             [
               {"group": "os_pkg", "name": "nmap"},
               {"group": "os_pkg", "name": "htop"},
-              {"group": "pip2", "name": "requests"},
               {"group": "pip3", "name": "configparser"},
               {"group": "r_pkg", "name": "rmarkdown"},
             ]
-            Types: for OS - os_pkg, for Python - pip2/pip3, for R - r_pkg
+            Types: for OS - os_pkg, for Python - pip3, for R - r_pkg
             NOTE: You need to escape each double quote.
             For Example: {\"group\": \"os_pkg\", \"name\": \"htop\"}
           </description>
diff --git a/infrastructure-provisioning/src/general/templates/gcp/jenkins_jobs/dataengine_install_additional_libs/config.xml b/infrastructure-provisioning/src/general/templates/gcp/jenkins_jobs/dataengine_install_additional_libs/config.xml
index 9b3600e..abc6599 100644
--- a/infrastructure-provisioning/src/general/templates/gcp/jenkins_jobs/dataengine_install_additional_libs/config.xml
+++ b/infrastructure-provisioning/src/general/templates/gcp/jenkins_jobs/dataengine_install_additional_libs/config.xml
@@ -61,11 +61,10 @@
             [
               {"group": "os_pkg", "name": "nmap"},
               {"group": "os_pkg", "name": "htop"},
-              {"group": "pip2", "name": "requests"},
               {"group": "pip3", "name": "configparser"},
               {"group": "r_pkg", "name": "rmarkdown"},
             ]
-            Types: for OS - os_pkg, for Python - pip2/pip3, for R - r_pkg
+            Types: for OS - os_pkg, for Python - pip3, for R - r_pkg
             NOTE: You need to escape each double quote.
             For Example: {\"group\": \"os_pkg\", \"name\": \"htop\"}
           </description>
diff --git a/infrastructure-provisioning/src/general/templates/gcp/jenkins_jobs/notebook_install_additional_libs/config.xml b/infrastructure-provisioning/src/general/templates/gcp/jenkins_jobs/notebook_install_additional_libs/config.xml
index 52f5aae..719035d 100644
--- a/infrastructure-provisioning/src/general/templates/gcp/jenkins_jobs/notebook_install_additional_libs/config.xml
+++ b/infrastructure-provisioning/src/general/templates/gcp/jenkins_jobs/notebook_install_additional_libs/config.xml
@@ -65,11 +65,10 @@
             [
               {"group": "os_pkg", "name": "nmap"},
               {"group": "os_pkg", "name": "htop"},
-              {"group": "pip2", "name": "requests"},
               {"group": "pip3", "name": "configparser"},
               {"group": "r_pkg", "name": "rmarkdown"},
             ]
-            Types: for OS - os_pkg, for Python - pip2/pip3, for R - r_pkg
+            Types: for OS - os_pkg, for Python - pip3, for R - r_pkg
             NOTE: You need to escape each double quote.
             For Example: {\"group\": \"os_pkg\", \"name\": \"htop\"}
           </description>
diff --git a/integration-tests/examples/test_libs/deeplearning/lib_groups.json b/integration-tests/examples/test_libs/deeplearning/lib_groups.json
index 0e8d040..b77b8c2 100644
--- a/integration-tests/examples/test_libs/deeplearning/lib_groups.json
+++ b/integration-tests/examples/test_libs/deeplearning/lib_groups.json
@@ -1,5 +1,4 @@
 [
-  "pip2",
   "pip3",
   "others",
   "os_pkg"
diff --git a/integration-tests/examples/test_libs/deeplearning/lib_list.json b/integration-tests/examples/test_libs/deeplearning/lib_list.json
index 8e6d23d..d360bd8 100644
--- a/integration-tests/examples/test_libs/deeplearning/lib_list.json
+++ b/integration-tests/examples/test_libs/deeplearning/lib_list.json
@@ -8,10 +8,6 @@
     "start_with": "gh"
   },
   {
-    "group": "pip2",
-    "start_with": "sp"
-  },
-  {
     "group": "pip3",
     "start_with": "sp"
   }
diff --git a/integration-tests/examples/test_libs/jupyter/lib_groups.json b/integration-tests/examples/test_libs/jupyter/lib_groups.json
index 821acb6..87e47a5 100644
--- a/integration-tests/examples/test_libs/jupyter/lib_groups.json
+++ b/integration-tests/examples/test_libs/jupyter/lib_groups.json
@@ -1,5 +1,4 @@
 [
-  "pip2",
   "pip3",
   "others",
   "os_pkg",
diff --git a/integration-tests/examples/test_libs/jupyter/lib_list.json b/integration-tests/examples/test_libs/jupyter/lib_list.json
index 7986430..5590429 100644
--- a/integration-tests/examples/test_libs/jupyter/lib_list.json
+++ b/integration-tests/examples/test_libs/jupyter/lib_list.json
@@ -12,10 +12,6 @@
     "start_with": "sp"
   },
   {
-    "group": "pip2",
-    "start_with": "sp"
-  },
-  {
     "group": "pip3",
     "start_with": "sp"
   }
diff --git a/integration-tests/examples/test_libs/lib_groups.json b/integration-tests/examples/test_libs/lib_groups.json
index 9c4e5f0..5cd7bfe 100644
--- a/integration-tests/examples/test_libs/lib_groups.json
+++ b/integration-tests/examples/test_libs/lib_groups.json
@@ -1,5 +1,4 @@
 [
-  "pip2",
   "pip3",
   "os_pkg",
   "r_pkg"
diff --git a/integration-tests/examples/test_libs/rstudio/lib_groups.json b/integration-tests/examples/test_libs/rstudio/lib_groups.json
index 821acb6..87e47a5 100644
--- a/integration-tests/examples/test_libs/rstudio/lib_groups.json
+++ b/integration-tests/examples/test_libs/rstudio/lib_groups.json
@@ -1,5 +1,4 @@
 [
-  "pip2",
   "pip3",
   "others",
   "os_pkg",
diff --git a/integration-tests/examples/test_libs/rstudio/lib_list.json b/integration-tests/examples/test_libs/rstudio/lib_list.json
index 7986430..5590429 100644
--- a/integration-tests/examples/test_libs/rstudio/lib_list.json
+++ b/integration-tests/examples/test_libs/rstudio/lib_list.json
@@ -12,10 +12,6 @@
     "start_with": "sp"
   },
   {
-    "group": "pip2",
-    "start_with": "sp"
-  },
-  {
     "group": "pip3",
     "start_with": "sp"
   }
diff --git a/integration-tests/examples/test_libs/tensor/lib_groups.json b/integration-tests/examples/test_libs/tensor/lib_groups.json
index 0e8d040..b77b8c2 100644
--- a/integration-tests/examples/test_libs/tensor/lib_groups.json
+++ b/integration-tests/examples/test_libs/tensor/lib_groups.json
@@ -1,5 +1,4 @@
 [
-  "pip2",
   "pip3",
   "others",
   "os_pkg"
diff --git a/integration-tests/examples/test_libs/tensor/lib_list.json b/integration-tests/examples/test_libs/tensor/lib_list.json
index 8e6d23d..d360bd8 100644
--- a/integration-tests/examples/test_libs/tensor/lib_list.json
+++ b/integration-tests/examples/test_libs/tensor/lib_list.json
@@ -8,10 +8,6 @@
     "start_with": "gh"
   },
   {
-    "group": "pip2",
-    "start_with": "sp"
-  },
-  {
     "group": "pip3",
     "start_with": "sp"
   }
diff --git a/integration-tests/examples/test_libs/zeppelin/lib_groups.json b/integration-tests/examples/test_libs/zeppelin/lib_groups.json
index 821acb6..87e47a5 100644
--- a/integration-tests/examples/test_libs/zeppelin/lib_groups.json
+++ b/integration-tests/examples/test_libs/zeppelin/lib_groups.json
@@ -1,5 +1,4 @@
 [
-  "pip2",
   "pip3",
   "others",
   "os_pkg",
diff --git a/integration-tests/examples/test_libs/zeppelin/lib_list.json b/integration-tests/examples/test_libs/zeppelin/lib_list.json
index 7986430..b443274 100644
--- a/integration-tests/examples/test_libs/zeppelin/lib_list.json
+++ b/integration-tests/examples/test_libs/zeppelin/lib_list.json
@@ -11,10 +11,7 @@
     "group": "r_pkg",
     "start_with": "sp"
   },
-  {
-    "group": "pip2",
-    "start_with": "sp"
-  },
+
   {
     "group": "pip3",
     "start_with": "sp"
diff --git a/services/datalab-model/src/main/java/com/epam/datalab/dto/LibraryGroups.java b/services/datalab-model/src/main/java/com/epam/datalab/dto/LibraryGroups.java
index 39ff924..3bc772c 100644
--- a/services/datalab-model/src/main/java/com/epam/datalab/dto/LibraryGroups.java
+++ b/services/datalab-model/src/main/java/com/epam/datalab/dto/LibraryGroups.java
@@ -21,7 +21,6 @@
 
 public enum LibraryGroups {
     GROUP_JAVA("java"),
-    GROUP_PIP2("pip2"),
     GROUP_PIP3("pip3"),
     GROUP_R_PKG("r_pkg"),
     GROUP_OS_PKG("os_pkg"),
diff --git a/services/datalab-webapp-common/src/main/java/com/epam/datalab/properties/ChangePropertiesConst.java b/services/datalab-webapp-common/src/main/java/com/epam/datalab/properties/ChangePropertiesConst.java
index 2cfc997..d4a2c51 100644
--- a/services/datalab-webapp-common/src/main/java/com/epam/datalab/properties/ChangePropertiesConst.java
+++ b/services/datalab-webapp-common/src/main/java/com/epam/datalab/properties/ChangePropertiesConst.java
@@ -23,17 +23,17 @@
     String GKE_SELF_SERVICE_PATH = "/root/self-service.yaml";
     String GKE_SELF_SERVICE = "self-service.yaml";
     String SELF_SERVICE = "self-service.yml";
-    //    String SELF_SERVICE_PROP_PATH = "services/self-service/self-service.yml";
+    //        String SELF_SERVICE_PROP_PATH = "services/self-service/self-service.yml";
     String SELF_SERVICE_PROP_PATH = "/opt/datalab/conf/self-service.yml";
     String PROVISIONING_SERVICE = "provisioning.yml";
-    //    String PROVISIONING_SERVICE_PROP_PATH = "services/provisioning-service/provisioning.yml";
+    //        String PROVISIONING_SERVICE_PROP_PATH = "services/provisioning-service/provisioning.yml";
     String PROVISIONING_SERVICE_PROP_PATH = "/opt/datalab/conf/provisioning.yml";
 
     String BILLING_SERVICE = "billing.yml";
+    String BILLING_SERVICE_PROP_PATH = "/opt/datalab/conf/billing.yml";
     //    String BILLING_SERVICE_PROP_PATH = "services/billing-gcp/billing.yml";
     //      String BILLING_SERVICE_PROP_PATH = "services/billing-azure/billing.yml";
 //    String BILLING_SERVICE_PROP_PATH = "services/billing-aws/billing.yml";
-    String BILLING_SERVICE_PROP_PATH = "/opt/datalab/conf/billing.yml";
     String GKE_BILLING_PATH = "/root/billing.yaml";
     String GKE_BILLING_SERVICE = "billing.yml";
     String RESTART_URL = "config/restart";
diff --git a/services/datalab-webapp-common/src/main/java/com/epam/datalab/properties/ChangePropertiesService.java b/services/datalab-webapp-common/src/main/java/com/epam/datalab/properties/ChangePropertiesService.java
index e4944a5..67f75b4 100644
--- a/services/datalab-webapp-common/src/main/java/com/epam/datalab/properties/ChangePropertiesService.java
+++ b/services/datalab-webapp-common/src/main/java/com/epam/datalab/properties/ChangePropertiesService.java
@@ -49,23 +49,40 @@
         }
     }
 
+
     public void writeFileFromString(String newPropFile, String serviceName, String servicePath) {
-        try {
-            String oldFile = FileUtils.readFileToString(new File(servicePath), Charset.defaultCharset());
-            changeCHMODE(serviceName, servicePath, ChangePropertiesConst.DEFAULT_CHMOD, ChangePropertiesConst.WRITE_CHMOD);
-            BufferedWriter writer = new BufferedWriter(new FileWriter(servicePath));
-            log.info("Trying to overwrite {}, file for path {} :", serviceName, servicePath);
-            writer.write(addLicence());
-            writer.write(checkAndReplaceSecretIfEmpty(newPropFile, oldFile));
-            log.info("{} overwritten successfully", serviceName);
-            writer.close();
-            changeCHMODE(serviceName, servicePath, ChangePropertiesConst.WRITE_CHMOD, ChangePropertiesConst.DEFAULT_CHMOD);
+        String oldFile = readFile(serviceName, servicePath);
+        try (BufferedWriter writer = new BufferedWriter(new FileWriter(servicePath))) {
+            try {
+                changeCHMODE(serviceName, servicePath, ChangePropertiesConst.DEFAULT_CHMOD, ChangePropertiesConst.WRITE_CHMOD);
+                log.info("Trying to overwrite {}, file for path {} :", serviceName, servicePath);
+                writer.write(addLicence());
+                writer.write(checkAndReplaceSecretIfEmpty(newPropFile, oldFile));
+                log.info("{} overwritten successfully", serviceName);
+                writer.close();
+                changeCHMODE(serviceName, servicePath, ChangePropertiesConst.WRITE_CHMOD, ChangePropertiesConst.DEFAULT_CHMOD);
+            } catch (Exception e) {
+                log.error("Failed during overwriting {}", serviceName);
+                writer.write(oldFile);
+                throw new DynamicChangePropertiesException(String.format("Failed during overwriting %s", serviceName));
+            }
         } catch (IOException e) {
-            log.error("Failed during overwriting {}", serviceName);
+            log.error("Failed to create writer with path {}", servicePath);
             throw new DynamicChangePropertiesException(String.format("Failed during overwriting %s", serviceName));
         }
     }
 
+    private String readFile(String serviceName, String servicePath) {
+        String oldFile;
+        try {
+            oldFile = FileUtils.readFileToString(new File(servicePath), Charset.defaultCharset());
+        } catch (IOException e) {
+            log.error("Failed to read with path {}", servicePath);
+            throw new DynamicChangePropertiesException(String.format("Failed during overwriting %s", serviceName));
+        }
+        return oldFile;
+    }
+
     public RestartAnswer restart(RestartForm restartForm) {
         try {
             boolean billing = restartForm.isBilling();
@@ -94,24 +111,30 @@
     private String hideSecretsAndRemoveLicence(String currentConf) {
         Matcher passMatcher = Pattern.compile(ChangePropertiesConst.SECRET_REGEX).matcher(currentConf);
         Matcher userMatcher = Pattern.compile(ChangePropertiesConst.USER_REGEX).matcher(currentConf);
-        List<String> secrets = new ArrayList<>();
-        List<String> users = new ArrayList<>();
+        List<String> secretsAndUsers = new ArrayList<>();
         String confWithReplacedSecretConf = removeLicence(currentConf);
         while (passMatcher.find()) {
             String secret = passMatcher.group().split(":")[ChangePropertiesConst.DEFAULT_VALUE_PLACE];
             if (!(secret.isEmpty() || secret.trim().isEmpty()))
-                secrets.add(secret);
+                secretsAndUsers.add(secret);
         }
         while (userMatcher.find()) {
             String user = userMatcher.group().split(":")[ChangePropertiesConst.DEFAULT_VALUE_PLACE];
             if (!(user.isEmpty() || user.trim().isEmpty()))
-                users.add(user);
+                secretsAndUsers.add(user);
         }
-        for (String secret : secrets) {
-            confWithReplacedSecretConf = confWithReplacedSecretConf.replace(secret, ChangePropertiesConst.SECRET_REPLACEMENT_FORMAT);
-        }
-        for (String user : users) {
-            confWithReplacedSecretConf = confWithReplacedSecretConf.replace(user, ChangePropertiesConst.SECRET_REPLACEMENT_FORMAT);
+        for (String secretOrUser : secretsAndUsers) {
+            int start = confWithReplacedSecretConf.indexOf(secretOrUser);
+            int end = confWithReplacedSecretConf.indexOf("\n", start) - 1;
+            boolean isTure;
+            try {
+                String s = confWithReplacedSecretConf.substring(start, end);
+                isTure = s.equals(secretOrUser);
+            } catch (StringIndexOutOfBoundsException e) {
+                isTure = true;
+            }
+            if (isTure)
+                confWithReplacedSecretConf = confWithReplacedSecretConf.replace(secretOrUser, ChangePropertiesConst.SECRET_REPLACEMENT_FORMAT);
         }
         return confWithReplacedSecretConf;
     }
@@ -137,29 +160,45 @@
     }
 
     private String checkAndReplaceSecretIfEmpty(String newPropFile, String oldProf) {
-        Map<String, String> emptySecrets = findEmptySecret(newPropFile);
-        return emptySecrets.isEmpty() ? newPropFile : replaceEmptySecret(newPropFile, oldProf, emptySecrets);
+        Map<String, String> emptySecretsAndUserNames = findEmptySecretAndNames(newPropFile);
+        return emptySecretsAndUserNames.isEmpty() ? newPropFile : replaceEmptySecret(newPropFile, oldProf, emptySecretsAndUserNames);
     }
 
     private String replaceEmptySecret(String newPropFile, String oldProf, Map<String, String> emptySecrets) {
         String fileWithReplacedEmptySecrets = newPropFile;
-        Matcher oldProfMatcher = Pattern.compile(ChangePropertiesConst.SECRET_REGEX).matcher(oldProf);
-        while (oldProfMatcher.find()) {
-            String[] s = oldProfMatcher.group().split(":");
+        Matcher oldPassMatcher = Pattern.compile(ChangePropertiesConst.SECRET_REGEX).matcher(oldProf);
+        Matcher oldUserMatcher = Pattern.compile(ChangePropertiesConst.USER_REGEX).matcher(oldProf);
+
+        while (oldPassMatcher.find()) {
+            String[] s = oldPassMatcher.group().split(":");
             if (emptySecrets.containsKey(s[ChangePropertiesConst.DEFAULT_NAME_PLACE])) {
-                fileWithReplacedEmptySecrets = fileWithReplacedEmptySecrets.replace(emptySecrets.get(s[ChangePropertiesConst.DEFAULT_NAME_PLACE]), oldProfMatcher.group());
+                fileWithReplacedEmptySecrets = fileWithReplacedEmptySecrets.replace(emptySecrets.get(s[ChangePropertiesConst.DEFAULT_NAME_PLACE]), oldPassMatcher.group());
+            }
+        }
+        while (oldUserMatcher.find()) {
+            String[] s = oldUserMatcher.group().split(":");
+            if (emptySecrets.containsKey(s[ChangePropertiesConst.DEFAULT_NAME_PLACE])) {
+                fileWithReplacedEmptySecrets = fileWithReplacedEmptySecrets.replace(emptySecrets.get(s[ChangePropertiesConst.DEFAULT_NAME_PLACE]), oldUserMatcher.group());
             }
         }
         return fileWithReplacedEmptySecrets;
     }
 
-    private Map<String, String> findEmptySecret(String newPropFile) {
-        Matcher newPropFileMatcher = Pattern.compile(ChangePropertiesConst.SECRET_REGEX).matcher(newPropFile);
+    private Map<String, String> findEmptySecretAndNames(String newPropFile) {
+        Matcher passMatcher = Pattern.compile(ChangePropertiesConst.SECRET_REGEX).matcher(newPropFile);
+        Matcher userNameMatcher = Pattern.compile(ChangePropertiesConst.USER_REGEX).matcher(newPropFile);
         Map<String, String> emptySecrets = new HashMap<>();
-        while (newPropFileMatcher.find()) {
-            String[] s = newPropFileMatcher.group().split(":");
+        while (passMatcher.find()) {
+            String[] s = passMatcher.group().split(":");
             if (s[ChangePropertiesConst.DEFAULT_VALUE_PLACE].equals(ChangePropertiesConst.SECRET_REPLACEMENT_FORMAT)) {
-                emptySecrets.put(s[ChangePropertiesConst.DEFAULT_NAME_PLACE], newPropFileMatcher.group());
+                emptySecrets.put(s[ChangePropertiesConst.DEFAULT_NAME_PLACE], passMatcher.group());
+            }
+        }
+
+        while (userNameMatcher.find()) {
+            String[] s = userNameMatcher.group().split(":");
+            if (s[ChangePropertiesConst.DEFAULT_VALUE_PLACE].equals(ChangePropertiesConst.SECRET_REPLACEMENT_FORMAT)) {
+                emptySecrets.put(s[ChangePropertiesConst.DEFAULT_NAME_PLACE], userNameMatcher.group());
             }
         }
         return emptySecrets;
diff --git a/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/core/response/handlers/ComputationalCallbackHandler.java b/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/core/response/handlers/ComputationalCallbackHandler.java
index 7e0a549..99b5f0e 100644
--- a/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/core/response/handlers/ComputationalCallbackHandler.java
+++ b/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/core/response/handlers/ComputationalCallbackHandler.java
@@ -75,11 +75,15 @@
 
     @Override
     protected ComputationalStatusDTO parseOutResponse(JsonNode resultNode, ComputationalStatusDTO baseStatus) {
+        log.info("TEST LOG!!!: parseOutResponse :\n resultNode: {}", resultNode);
+
         if (resultNode == null) {
             return baseStatus;
         }
         baseStatus.withComputationalUrl(extractUrl(resultNode));
         baseStatus.withLastActivity(Date.from(Instant.now()));
+        log.info("TEST LOG!!!: base status: {}", baseStatus);
+        log.info("TEST LOG!!!: getAction: {}", getAction());
 
         if (DockerAction.CREATE == getAction()) {
             baseStatus
diff --git a/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/resources/aws/ComputationalResourceAws.java b/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/resources/aws/ComputationalResourceAws.java
index 1818b29..9af68b3 100644
--- a/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/resources/aws/ComputationalResourceAws.java
+++ b/services/provisioning-service/src/main/java/com/epam/datalab/backendapi/resources/aws/ComputationalResourceAws.java
@@ -68,7 +68,8 @@
     @POST
     @Path(ComputationalAPI.COMPUTATIONAL_CREATE_CLOUD_SPECIFIC)
     public String create(@Auth UserInfo ui, ComputationalCreateAws dto) {
-        log.debug("Create computational resources {} for user {}: {}", dto.getComputationalName(), ui.getName(), dto);
+
+        log.info("Create computational resources {} for user {}: {}", dto.getComputationalName(), ui.getName(), dto);
         String uuid = DockerCommands.generateUUID();
         folderListenerExecutor.start(configuration.getImagesDirectory(),
                 configuration.getResourceStatusPollTimeout(),
diff --git a/services/provisioning-service/src/main/resources/mock_response/aws/notebook_lib_list_pkgs.json b/services/provisioning-service/src/main/resources/mock_response/aws/notebook_lib_list_pkgs.json
index b0816fc..acc4568 100644
--- a/services/provisioning-service/src/main/resources/mock_response/aws/notebook_lib_list_pkgs.json
+++ b/services/provisioning-service/src/main/resources/mock_response/aws/notebook_lib_list_pkgs.json
@@ -5,11 +5,6 @@
   	"pyvcf/xenial": "0.6.7-2build1",
   	"pyxplot/xenial": "0.9.2-6build1"
   	},
-  "pip2": {
-  	"requests": "N/A",
-  	"configparser": "N/A",
-	  "SparseAce": "N/A"
-  	},
   "pip3": {
   	"configparser": "N/A",
 	  "sparkL": "N/A"
diff --git a/services/provisioning-service/src/main/resources/mock_response/azure/notebook_lib_list_pkgs.json b/services/provisioning-service/src/main/resources/mock_response/azure/notebook_lib_list_pkgs.json
index b0816fc..acc4568 100644
--- a/services/provisioning-service/src/main/resources/mock_response/azure/notebook_lib_list_pkgs.json
+++ b/services/provisioning-service/src/main/resources/mock_response/azure/notebook_lib_list_pkgs.json
@@ -5,11 +5,6 @@
   	"pyvcf/xenial": "0.6.7-2build1",
   	"pyxplot/xenial": "0.9.2-6build1"
   	},
-  "pip2": {
-  	"requests": "N/A",
-  	"configparser": "N/A",
-	  "SparseAce": "N/A"
-  	},
   "pip3": {
   	"configparser": "N/A",
 	  "sparkL": "N/A"
diff --git a/services/provisioning-service/src/main/resources/mock_response/gcp/notebook_lib_list_pkgs.json b/services/provisioning-service/src/main/resources/mock_response/gcp/notebook_lib_list_pkgs.json
index b0816fc..acc4568 100644
--- a/services/provisioning-service/src/main/resources/mock_response/gcp/notebook_lib_list_pkgs.json
+++ b/services/provisioning-service/src/main/resources/mock_response/gcp/notebook_lib_list_pkgs.json
@@ -5,11 +5,6 @@
   	"pyvcf/xenial": "0.6.7-2build1",
   	"pyxplot/xenial": "0.9.2-6build1"
   	},
-  "pip2": {
-  	"requests": "N/A",
-  	"configparser": "N/A",
-	  "SparseAce": "N/A"
-  	},
   "pip3": {
   	"configparser": "N/A",
 	  "sparkL": "N/A"
diff --git a/services/self-service/src/main/java/com/epam/datalab/backendapi/domain/NotebookTemplate.java b/services/self-service/src/main/java/com/epam/datalab/backendapi/domain/NotebookTemplate.java
index ffc4c60..294621e 100644
--- a/services/self-service/src/main/java/com/epam/datalab/backendapi/domain/NotebookTemplate.java
+++ b/services/self-service/src/main/java/com/epam/datalab/backendapi/domain/NotebookTemplate.java
@@ -19,6 +19,11 @@
 
 package com.epam.datalab.backendapi.domain;
 
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
 public enum NotebookTemplate {
     JUPYTER("Jupyter notebook 6.1.6"),
     JUPYTER_LAB("JupyterLab 0.35.6"),
@@ -26,15 +31,9 @@
     DEEP_LEARNING("Deep Learning  2.4"),
     TENSOR("Jupyter with TensorFlow 2.3.2"),
     TENSOR_RSTUDIO("RStudio with TensorFlow 2.3.2"),
-    RSTUDIO("RStudio 1.4.1103");
+    RSTUDIO("RStudio 1.4.1103"),
+    TENSOR_GCP("Jupyter with TensorFlow 2.1.0"),
+    DEEP_LEARNING_GCP("Deeplearning notebook");
 
-    private String name;
-
-    NotebookTemplate(String name) {
-        this.name = name;
-    }
-
-    public String getName() {
-        return name;
-    }
+    private final String name;
 }
diff --git a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/callback/ComputationalCallback.java b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/callback/ComputationalCallback.java
index 5e074ae..cb7e1a7 100644
--- a/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/callback/ComputationalCallback.java
+++ b/services/self-service/src/main/java/com/epam/datalab/backendapi/resources/callback/ComputationalCallback.java
@@ -66,6 +66,8 @@
     @POST
     @Path(ApiCallbacks.STATUS_URI)
     public Response status(ComputationalStatusDTO dto) {
+        log.info("TEST LOG!!!: status: {}", dto);
+
         log.debug("Updating status for computational resource {} for user {}: {}",
                 dto.getComputationalName(), dto.getUser(), dto);
         String uuid = dto.getRequestId();
@@ -77,11 +79,16 @@
                         new DatalabException(String.format("Computational resource %s of exploratory environment %s of " +
                                         "project %s for user %s doesn't exist", dto.getComputationalName(),
                                 dto.getExploratoryName(), dto.getProject(), dto.getUser())));
-        log.debug("Current status for computational resource {} of exploratory environment {} for user {} is {}",
+
+        log.info("TEST LOG!!!: compResource: {}", compResource);
+
+        log.info("Current status for computational resource {} of exploratory environment {} for user {} is {}",
                 dto.getComputationalName(), dto.getExploratoryName(), dto.getUser(),
                 compResource.getStatus());
         try {
-            computationalDAO.updateComputationalFields(dto.withLastActivity(new Date()));
+            computationalDAO.updateComputationalFields(dto
+                    .withLastActivity(new Date()));
+//                    .withStatus(UserInstanceStatus.RUNNING));
         } catch (DatalabException e) {
             log.error("Could not update status for computational resource {} for user {} to {}: {}", dto, e);
             throw e;
diff --git a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/ComputationalServiceImpl.java b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/ComputationalServiceImpl.java
index d93298b..2da87a3 100644
--- a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/ComputationalServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/ComputationalServiceImpl.java
@@ -205,9 +205,13 @@
         boolean isAdded = computationalDAO.addComputational(userInfo.getName(), formDTO.getNotebookName(), project,
                 computationalResource);
 
+        log.info("TEST LOG!!!: isAdded: {}", isAdded);
+
         if (isAdded) {
             try {
                 EndpointDTO endpointDTO = endpointService.get(instance.getEndpoint());
+                log.info("TEST LOG!!!: send to prov");
+
                 String uuid =
                         provisioningService.post(endpointDTO.getUrl() + COMPUTATIONAL_CREATE_CLOUD_SPECIFIC,
                                 userInfo.getAccessToken(),
diff --git a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/InfrastructureInfoServiceImpl.java b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/InfrastructureInfoServiceImpl.java
index fe2f340..09d05b9 100644
--- a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/InfrastructureInfoServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/InfrastructureInfoServiceImpl.java
@@ -130,6 +130,11 @@
     @Override
     public InfrastructureMetaInfoDTO getInfrastructureMetaInfo() {
         final String branch = Manifests.read("GIT-Branch");
+        log.info("TEST LOG!!!: Mainfests: {}, branch: {}", Manifests.DEFAULT, branch);
+        log.info("TEST LOG!!!: Git-Commit: {} ", Manifests.read("GIT-Commit"));
+        log.info("TEST LOG!!!: Datalab-Version: {}", Manifests.read("DataLab-Version"));
+        log.info("TEST LOG!!!: RELEASE_NOTES_FORMAT: {}", RELEASE_NOTES_FORMAT);
+
         return InfrastructureMetaInfoDTO.builder()
                 .branch(branch)
                 .commit(Manifests.read("GIT-Commit"))
diff --git a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/LibraryServiceImpl.java b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/LibraryServiceImpl.java
index b66123b..9ee95f2 100644
--- a/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/LibraryServiceImpl.java
+++ b/services/self-service/src/main/java/com/epam/datalab/backendapi/service/impl/LibraryServiceImpl.java
@@ -22,6 +22,7 @@
 import com.epam.datalab.auth.UserInfo;
 import com.epam.datalab.backendapi.annotation.*;
 import com.epam.datalab.backendapi.dao.BaseDAO;
+import com.epam.datalab.backendapi.dao.ComputationalDAO;
 import com.epam.datalab.backendapi.dao.ExploratoryDAO;
 import com.epam.datalab.backendapi.dao.ExploratoryLibDAO;
 import com.epam.datalab.backendapi.domain.EndpointDTO;
@@ -70,24 +71,24 @@
     private static final String COMPUTATIONAL_NOT_FOUND_MSG = "Computational with name %s was not found";
     private static final String LIB_ALREADY_INSTALLED = "Library %s is already installing";
 
-    @Inject
-    private ExploratoryDAO exploratoryDAO;
+    private final ExploratoryDAO exploratoryDAO;
+    private final ExploratoryLibDAO libraryDAO;
+    private final RequestBuilder requestBuilder;
+    private final RESTService provisioningService;
+    private final RequestId requestId;
+    private final EndpointService endpointService;
 
     @Inject
-    private ExploratoryLibDAO libraryDAO;
-
-    @Inject
-    private RequestBuilder requestBuilder;
-
-    @Named(ServiceConsts.PROVISIONING_SERVICE_NAME)
-    @Inject
-    private RESTService provisioningService;
-
-    @Inject
-    private RequestId requestId;
-
-    @Inject
-    private EndpointService endpointService;
+    public LibraryServiceImpl(ExploratoryDAO exploratoryDAO, ExploratoryLibDAO libraryDAO, RequestBuilder requestBuilder,
+                              @Named(ServiceConsts.PROVISIONING_SERVICE_NAME) RESTService provisioningService,
+                              RequestId requestId, EndpointService endpointService, ComputationalDAO computationalDAO) {
+        this.exploratoryDAO = exploratoryDAO;
+        this.libraryDAO = libraryDAO;
+        this.requestBuilder = requestBuilder;
+        this.provisioningService = provisioningService;
+        this.requestId = requestId;
+        this.endpointService = endpointService;
+    }
 
 
     @Override
@@ -100,7 +101,6 @@
             Document document = (Document) libraryDAO.findComputationalLibraries(user, project,
                     exploratoryName, computationalName)
                     .getOrDefault(ExploratoryLibDAO.COMPUTATIONAL_LIBS, new Document());
-
             return (List<Document>) document.getOrDefault(computationalName, new ArrayList<>());
         }
     }
@@ -158,7 +158,7 @@
     public List<String> getExploratoryLibGroups(UserInfo userInfo, String projectName, String exploratoryName) {
         UserInstanceDTO userInstanceDTO = exploratoryDAO.fetchExploratoryFields(userInfo.getName(), projectName, exploratoryName);
         final String templateName = userInstanceDTO.getTemplateName();
-        List<LibraryGroups> groups = new ArrayList<>(Arrays.asList(GROUP_PIP2, GROUP_PIP3, GROUP_OTHERS, GROUP_OS_PKG));
+        List<LibraryGroups> groups = new ArrayList<>(Arrays.asList(GROUP_PIP3, GROUP_OTHERS, GROUP_OS_PKG));
 
         if (isTemplateGroup(templateName, Stream.of(JUPYTER, ZEPPELIN))) {
             groups.addAll(Arrays.asList(GROUP_R_PKG, GROUP_JAVA));
@@ -169,6 +169,9 @@
         if (isTemplateGroup(templateName, Stream.of(RSTUDIO, TENSOR_RSTUDIO))) {
             groups.add(GROUP_R_PKG);
         }
+        if (isTemplateGroup(templateName, Stream.of(DEEP_LEARNING_GCP, TENSOR_GCP))) {
+            groups.add(GROUP_JAVA);
+        }
 
         return groups
                 .stream()
diff --git a/services/self-service/src/main/java/com/epam/datalab/backendapi/util/RequestBuilder.java b/services/self-service/src/main/java/com/epam/datalab/backendapi/util/RequestBuilder.java
index 7362160..0dc1a2a 100644
--- a/services/self-service/src/main/java/com/epam/datalab/backendapi/util/RequestBuilder.java
+++ b/services/self-service/src/main/java/com/epam/datalab/backendapi/util/RequestBuilder.java
@@ -65,6 +65,7 @@
 import com.epam.datalab.util.UsernameUtils;
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
+import lombok.extern.slf4j.Slf4j;
 
 import java.util.List;
 import java.util.Map;
@@ -73,6 +74,7 @@
 import static com.epam.datalab.cloud.CloudProvider.*;
 
 @Singleton
+@Slf4j
 public class RequestBuilder {
     private static final String UNSUPPORTED_CLOUD_PROVIDER_MESSAGE = "Unsupported cloud provider ";
     private static final String AZURE_REFRESH_TOKEN_KEY = "refresh_token";
@@ -335,6 +337,8 @@
                                                                      UserInstanceDTO userInstance,
                                                                      ComputationalCreateFormDTO form,
                                                                      EndpointDTO endpointDTO) {
+        log.info("TEST LOG!!!: newComputationalCreate: \n form: {}", form);
+
         T computationalCreate;
         CloudProvider cloudProvider = endpointDTO.getCloudProvider();
         switch (cloudProvider) {
@@ -351,6 +355,8 @@
                         .withVersion(awsForm.getVersion())
                         .withConfig((awsForm.getConfig()))
                         .withSharedImageEnabled(String.valueOf(projectDTO.isSharedImageEnabled()));
+                log.info("TEST LOG!!!: computationalCreate: {}", computationalCreate);
+
                 break;
             case GCP:
                 GcpComputationalCreateForm gcpForm = (GcpComputationalCreateForm) form;
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/util/helpUtils.ts b/services/self-service/src/main/resources/webapp/src/app/core/util/helpUtils.ts
index e078fde..a0eae85 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/util/helpUtils.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/util/helpUtils.ts
@@ -36,40 +36,23 @@
     }
   }
 
-  public static addSizeToGpuType(gpuType: string = ''): string {
-    switch (gpuType) {
-      case 'nvidia-tesla-t4':
-        return 'S';
+  public static addSizeToGpuType(index): string {
 
-      case 'nvidia-tesla-p100':
-        return 'M';
+    const sizes = ['S', 'M', 'L', 'XL', 'XXL'];
 
-      case 'nvidia-tesla-v100':
-        return 'L';
-    }
+    return sizes[index];
   }
 
   public static sortGpuTypes(gpuType: Array<string> = []): Array<string> {
-    let sortedTypes = [];
+    
+    const sortedTypes = [
+      'nvidia-tesla-t4', 
+      'nvidia-tesla-k80', 
+      'nvidia-tesla-p4', 
+      'nvidia-tesla-p100', 
+      'nvidia-tesla-v100'
+    ];
 
-    gpuType?.forEach(type => checkType(type));
-
-    function checkType(type) {
-      switch (type) {
-        case 'nvidia-tesla-t4':
-          sortedTypes[0] = type;
-          return;
-  
-        case 'nvidia-tesla-p100':
-          sortedTypes[1] = type;
-          return;
-  
-        case 'nvidia-tesla-v100':
-          sortedTypes[2] = type;
-          return;
-      }
-    }
-
-    return sortedTypes;
+    return sortedTypes.filter(el => gpuType.includes(el));;
   }
 }
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resource-create-dialog/computational-resource-create-dialog.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resource-create-dialog/computational-resource-create-dialog.component.html
index 461c6ad..7b339f7 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resource-create-dialog/computational-resource-create-dialog.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resource-create-dialog/computational-resource-create-dialog.component.html
@@ -170,9 +170,9 @@
                     <mat-select formControlName="master_GPU_type" disableOptionCentering
                                 placeholder="Select master GPU type"
                                 [disabled]="!resourceForm.controls['shape_master'].value">
-                      <mat-option *ngFor="let type of sortGpuTypes(selectedImage.computationGPU)"
+                      <mat-option *ngFor="let type of sortGpuTypes(selectedImage.computationGPU); index as i"
                                   [value]="type" >
-                        <strong class="highlight icon-label">{{ addSizeToGpuType(type) }}</strong> {{ type }}
+                        <strong class="highlight icon-label">{{ addSizeToGpuType(i) }}</strong> {{ type }}
                       </mat-option>
                       <mat-option *ngIf="!selectedImage.computationGPU?.length" class="multiple-select ml-10" disabled>
                         Master GPU types list is empty
@@ -223,8 +223,8 @@
                   <mat-form-field>
                     <mat-label>Select slave GPU type</mat-label>
                     <mat-select formControlName="slave_GPU_type" disableOptionCentering [disabled]="!resourceForm.controls['shape_slave'].value">
-                      <mat-option *ngFor="let type of sortGpuTypes(selectedImage.computationGPU)" [value]="type">
-                        <strong class="highlight icon-label">{{ addSizeToGpuType(type) }}</strong> {{ type }}
+                      <mat-option *ngFor="let type of sortGpuTypes(selectedImage.computationGPU); index as i" [value]="type">
+                        <strong class="highlight icon-label">{{ addSizeToGpuType(i) }}</strong> {{ type }}
                       </mat-option>
                       <mat-option *ngIf="!selectedImage.computationGPU?.length" class="multiple-select ml-10" disabled>
                         Slave GPU types list is empty
@@ -309,7 +309,7 @@
             rises above your bid price, the Spot instance is reclaimed by AWS so that it can be given to another
             customer. Make sure to backup your data on periodic basis.</span>
         </div>
-        <div class="checkbox-group control-group"
+        <div class="checkbox-group control-group m-top-10"
               [hidden]="PROVIDER === 'gcp' && selectedImage?.image === 'docker.datalab-dataengine-service'"
               *ngIf="notebook_instance?.image !== 'docker.datalab-zeppelin'">
           <div class="d-flex cursor-pointer label" (click)="addAdditionalParams('configuration')">
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/create-environment/create-environment.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/create-environment/create-environment.component.html
index aaa633c..28d54f3 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/create-environment/create-environment.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/create-environment/create-environment.component.html
@@ -231,8 +231,8 @@
                   <mat-label>Select GPU type</mat-label>
                   <mat-select formControlName="gpu_type" disableOptionCentering [disabled]="!createExploratoryForm.controls['shape'].value"
                               panelClass="create-resources-dialog" placeholder="GPU type">
-                      <mat-option *ngFor="let list_item of gpuTypes" [value]="list_item" (click)="setCount('', list_item)">
-                        <strong class="highlight icon-label">{{ addSizeToGpuType(list_item) }}</strong> {{ list_item }}
+                      <mat-option *ngFor="let list_item of gpuTypes; index as i" [value]="list_item" (click)="setCount('', list_item)">
+                        <strong class="highlight icon-label">{{ addSizeToGpuType(i) }}</strong> {{ list_item }}
                       </mat-option>
                       <mat-option *ngIf="!gpuTypes.length" class="multiple-select ml-10" disabled>
                         GPU list is empty
diff --git a/services/self-service/src/test/java/com/epam/datalab/backendapi/service/impl/LibraryServiceImplTest.java b/services/self-service/src/test/java/com/epam/datalab/backendapi/service/impl/LibraryServiceImplTest.java
index 80c0327..af5dc5a 100644
--- a/services/self-service/src/test/java/com/epam/datalab/backendapi/service/impl/LibraryServiceImplTest.java
+++ b/services/self-service/src/test/java/com/epam/datalab/backendapi/service/impl/LibraryServiceImplTest.java
@@ -79,7 +79,6 @@
     private final String COMPUTATIONAL_NAME = "compName";
 
     private static final String GROUP_JAVA = "java";
-    private static final String GROUP_PIP2 = "pip2";
     private static final String GROUP_PIP3 = "pip3";
     private static final String GROUP_R_PKG = "r_pkg";
     private static final String GROUP_OS_PKG = "os_pkg";
@@ -366,7 +365,7 @@
 
     @Test
     public void getExploratoryJupyterLibGroups() {
-        List<Object> exploratoryGroups = Arrays.asList(GROUP_PIP2, GROUP_PIP3, GROUP_OTHERS, GROUP_OS_PKG, GROUP_R_PKG, GROUP_JAVA);
+        List<Object> exploratoryGroups = Arrays.asList(GROUP_PIP3, GROUP_OTHERS, GROUP_OS_PKG, GROUP_R_PKG, GROUP_JAVA);
         when(exploratoryDAO.fetchExploratoryFields(anyString(), anyString(), anyString())).thenReturn(getJupyterUserInstanceDtoForLibGroups());
 
         List<String> exploratoryGroupsResult = libraryService.getExploratoryLibGroups(getUser(), PROJECT, EXPLORATORY_NAME);
@@ -377,7 +376,7 @@
 
     @Test
     public void getExploratoryRstudioLibGroups() {
-        List<Object> exploratoryGroups = Arrays.asList(GROUP_PIP2, GROUP_PIP3, GROUP_OTHERS, GROUP_OS_PKG, GROUP_R_PKG);
+        List<Object> exploratoryGroups = Arrays.asList(GROUP_PIP3, GROUP_OTHERS, GROUP_OS_PKG, GROUP_R_PKG);
         when(exploratoryDAO.fetchExploratoryFields(anyString(), anyString(), anyString())).thenReturn(getRstudioUserInstanceDtoForLibGroups());
 
         List<String> exploratoryGroupsResult = libraryService.getExploratoryLibGroups(getUser(), PROJECT, EXPLORATORY_NAME);
