diff --git a/Ccs/ccs_function_lib.py b/Ccs/ccs_function_lib.py
index 40004be3b69efe74881fb8063a1151f59114b643..a97323344a1e700156824f4170b4ec9aecb5b51d 100644
--- a/Ccs/ccs_function_lib.py
+++ b/Ccs/ccs_function_lib.py
@@ -2695,10 +2695,11 @@ def get_tc_calibration_and_parameters(ccf_descr=None):
 
     return calibrations_dict
 
-def get_tm_id(ccf_descr=None):
-    if ccf_descr is None:
+def get_tm_id(pcf_descr=None):
+    if pcf_descr is None:
         tms = scoped_session_idb.execute('SELECT pid_type, pid_stype, pid_apid, pid_pi1_val, pid_descr, pid_tpsd, '
-                                         'pid_spid, pcf_name, pcf_descr, pcf_curtx, txp_from, txp_altxt, plf_offby '
+                                         'pid_spid, pcf_name, pcf_descr, pcf_curtx, txp_from, txp_altxt, plf_offby,'
+                                         'pcf_ptc, pcf_pfc '
                                          'FROM pid '
                                          'LEFT JOIN plf '
                                          'ON pid_spid = plf_spid AND pid_tpsd = -1 '
@@ -2713,7 +2714,8 @@ def get_tm_id(ccf_descr=None):
 
     else:
         tms = scoped_session_idb.execute('SELECT pid_type, pid_stype, pid_apid, pid_pi1_val, pid_descr , pid_tpsd, '
-                                         'pid_spid, pcf_name, pcf_descr, pcf_curtx, txp_from, txp_altxt, plf_offby '
+                                         'pid_spid, pcf_name, pcf_descr, pcf_curtx, txp_from, txp_altxt, plf_offby,'
+                                         'pcf_ptc, pcf_pfc '
                                          'FROM pid '
                                          'LEFT JOIN plf '
                                          'ON pid_spid = plf_spid AND pid_tpsd = -1 '
@@ -2725,7 +2727,7 @@ def get_tm_id(ccf_descr=None):
                                          'ON pcf_curtx = txf_numbr '
                                          'LEFT JOIN txp '
                                          'ON txf_numbr = txp.txp_numbr '
-                                         'WHERE ccf_descr="{}"'.format(ccf_descr)).fetchall()
+                                         'WHERE pcf_descr="{}"'.format(pcf_descr)).fetchall()
 
     scoped_session_idb.close()
 
@@ -2737,6 +2739,28 @@ def get_tm_id(ccf_descr=None):
 
     return tms_dict
 
+def get_data_pool_items(pcf_descr = None):
+    if pcf_descr is None:
+        data_pool = scoped_session_idb.execute('SELECT pcf_pid, pcf_descr, pcf_ptc, pcf_pfc '
+                                         'FROM pcf '
+                                        'WHERE pcf_pid <> 0').fetchall()
+
+    else:
+        data_pool = scoped_session_idb.execute('SELECT pcf_pid, pcf_descr, pcf_ptc, pcf_pfc '
+                                         'FROM pcf '
+                                        'WHERE pcf_pid <> 0 '
+                                        'WHERE pcf_descr="{}"'.format(pcf_descr)).fetchall()
+
+    scoped_session_idb.close()
+
+    data_pool_dict = {}
+
+    for row in data_pool:
+        data_pool_dict.setdefault(row[0:4], []).append(row[5:])
+
+
+    return data_pool_dict
+
 
 
 def get_dp_items(source='mib'):
diff --git a/Ccs/s2k_partypes.py b/Ccs/s2k_partypes.py
index 17257c7c4635588ec40731b7cfcf34aa25c0a5a0..4329205317e0479ad1c0b6e93a7493273f58150f 100644
--- a/Ccs/s2k_partypes.py
+++ b/Ccs/s2k_partypes.py
@@ -36,7 +36,7 @@ ptt = {
         11: 'uint11', 12: 'uint12', 13: 'uint13', 14: 'uint14', 15: 'uint15', 16: 'H', 17: 'uint17', 18: 'uint18',
         19: 'uint19', 20: 'uint20', 21: 'uint21', 22: 'uint22', 23: 'uint23', 24: 'I24', 25: 'uint25', 26: 'uint26',
         27: 'uint27', 28: 'uint28', 29: 'uint29', 30: 'uint30', 31: 'uint31', 32: 'I'},
-    7: {0: 'vOCT', 382: '382s'},
+    7: {0: 'vOCT', 1: '1s', 12: '12s', 382: '382s'},
     8: {0: 'vASCII', 382: '382s'},
     9: {17: 'CUC917', 18: 'CUC918'},
     11: {0: 'deduced'},
diff --git a/Tst/tst/data_pool_tab.py b/Tst/tst/data_pool_tab.py
new file mode 100644
index 0000000000000000000000000000000000000000..263f3c036d3433c7509df2a3a8f27eb7322130e3
--- /dev/null
+++ b/Tst/tst/data_pool_tab.py
@@ -0,0 +1,135 @@
+import gi
+
+gi.require_version("Gtk", "3.0")
+gi.require_version("GtkSource", "3.0")
+from gi.repository import Gtk, Gdk, GtkSource
+import confignator
+import sys
+sys.path.append(confignator.get_option('paths', 'ccs'))
+import ccs_function_lib as cfl
+import s2k_partypes as s2k
+
+
+dictionary_of_data_pool = cfl.get_data_pool_items()
+list_of_data_pool = list(dictionary_of_data_pool.keys())
+
+data_pool_sublist = []
+
+pid_list = []
+
+def get_data_pool_sublist():
+    for counter in list_of_data_pool:
+        pcf_pid = str(counter[0])
+        pcf_descr = str(counter[1])
+        pcf_ptc = counter[2]
+        pcf_pfc = counter[3]
+
+        if pcf_ptc == None:
+            data_type = "None"
+        else:
+            data_type = s2k.ptt[pcf_ptc][pcf_pfc]
+
+        if pcf_pid not in pid_list:
+            pid_list.append(pcf_pid)
+
+        data_pool_sublist.append([pcf_pid, pcf_descr, data_type])
+
+    return data_pool_sublist, pid_list
+
+data_pool_sublist, pid_list = get_data_pool_sublist()
+
+
+
+
+class DataPoolTable(Gtk.Grid):
+
+    def __init__(self, *args, **kwargs):
+        super().__init__(*args, **kwargs)
+
+        self.data_pool_liststore = Gtk.ListStore(str, str, str)
+        for data_pool_ref in data_pool_sublist:
+            self.data_pool_liststore.append(list(data_pool_ref))
+        self.current_filter_data_pool = None
+
+        # Creating the filter, feeding it with the liststore model
+        self.data_pool_filter = self.data_pool_liststore.filter_new()
+        # setting the filter function
+        self.data_pool_filter.set_visible_func(self.data_pool_filter_func)
+
+        # Create ListStores for the ComboBoxes
+        self.pid_liststore = Gtk.ListStore(str)
+        for pid_ref in pid_list:
+            self.pid_liststore.append([pid_ref, ])
+        # self.current_filter_type = None
+
+        """
+        self.pid_combo = Gtk.ComboBox.new_with_model(self.pid_liststore)
+        self.pid_combo.connect("changed", self.on_pid_combo_changed)
+        renderer_text = Gtk.CellRendererText()
+        self.pid_combo.pack_start(renderer_text, True)
+        self.pid_combo.add_attribute(renderer_text, "text", 0)
+        self.attach(self.pid_combo, 0, 0, 1, 1)
+
+        self.clear_button = Gtk.Button(label="Clear")
+        self.clear_button.connect("clicked", self.on_clear_button_clicked)
+        self.attach_next_to(
+            self.clear_button, self.pid_combo, Gtk.PositionType.RIGHT, 1, 1
+        )
+        """
+
+        # creating the treeview, making it use the filter a model, adding columns
+        self.treeview = Gtk.TreeView.new_with_model(Gtk.TreeModelSort(self.data_pool_filter))
+        for i, column_title in enumerate(
+            ["pcf_pid", "pcf_descr", "datatype"]
+        ):
+            renderer = Gtk.CellRendererText()
+            column = Gtk.TreeViewColumn(column_title, renderer, text=i)
+            column.set_sort_column_id(i)
+            self.treeview.append_column(column)
+
+        # Handle selection
+        self.selected_row = self.treeview.get_selection()
+        self.selected_row.connect("changed", self.item_selected)
+
+        # setting up layout, treeview in scrollwindow
+        self.scrollable_treelist = Gtk.ScrolledWindow()
+        self.scrollable_treelist.set_vexpand(True)
+        self.scrollable_treelist.set_hexpand(True)
+        self.attach(self.scrollable_treelist, 0, 1, 8, 10)
+
+        self.scrollable_treelist.add(self.treeview)
+
+
+        self.show_all()
+
+    def on_pid_combo_changed(self, combo):
+        combo_iter = combo.get_active_iter()
+        if combo_iter is not None:
+            model = combo.get_model()
+            number = model[combo_iter][0]
+            self.current_filter_data_pool = int(number)
+
+        self.data_pool_filter.refilter()
+
+
+    def on_clear_button_clicked(self, widget):
+        self.current_filter_data_pool = None
+        self.data_pool_filter.refilter()
+
+
+    def item_selected(self, selection):
+        model, row = selection.get_selected()
+        if row is not None:
+            pass
+
+
+
+    def data_pool_filter_func(self, model, iter, data):
+
+        if (
+                self.current_filter_data_pool is None
+                or self.current_filter_data_pool == "None"
+        ):
+            return True
+        else:
+            return model[iter][0] == self.current_filter_data_pool
diff --git a/Tst/tst/tm_management.py b/Tst/tst/tm_management.py
index 36648287c91bf1527069d10ea5d6cb919c8dc656..e7cc4eee0f2b26611ed5d7a7d356e2a5f4148732 100644
--- a/Tst/tst/tm_management.py
+++ b/Tst/tst/tm_management.py
@@ -9,7 +9,7 @@ import confignator
 import sys
 sys.path.append(confignator.get_option('paths', 'ccs'))
 import ccs_function_lib as cfl
-
+import s2k_partypes as s2k
 
 dictionary_of_tms = cfl.get_tm_id()
 
@@ -41,9 +41,17 @@ def get_tm_type_sublist(tm_descr):
                 txp_from = str(counter[5])
                 txp_altxt = str(counter[6])
                 plf_offpy = str(counter[7])
+                pcf_ptc = counter[8]
+                pcf_pfc = counter[9]
+
 
+                if pcf_ptc == None:
+                    data_type = "None"
+                    pass
+                else:
+                    data_type = s2k.ptt[pcf_ptc][pcf_pfc]
 
-                tm_type_sub_list.append([pid_tpsc, pid_spid, pcf_name, pcf_descr, pcf_curtx, txp_from, txp_altxt])
+                tm_type_sub_list.append([pcf_name, pcf_descr, pcf_curtx, txp_from, txp_altxt, plf_offpy, data_type])
 
     return tm_type_sub_list
 
@@ -207,7 +215,7 @@ class TmSecondaryTable(Gtk.Box):
         self.secondary_treeview = Gtk.TreeView(model=self.secondary_filter)
 
         for i, column_title in enumerate(
-            ["pid_tpsc", "pid_spic", "pcf_name", "pcf_descr", "pcf_curtx", "txp_from", "txp_altxt"]
+            ["pcf_name", "pcf_descr", "pcf_curtx", "txp_from", "txp_altxt", "plf_offby", "data_type"]
         ):
             renderer = Gtk.CellRendererText()
             column = Gtk.TreeViewColumn(column_title, renderer, text=i)
diff --git a/Tst/tst/tst.py b/Tst/tst/tst.py
index 61e753cb32afb7b822cf99c14cea442a23ace99f..e6debfe3e5286be79ca1f9f653c66b50bf971740 100755
--- a/Tst/tst/tst.py
+++ b/Tst/tst/tst.py
@@ -23,11 +23,17 @@ import dbus
 import toolbox
 import tc_management as tcm
 import tm_management as tmm
+import data_pool_tab as dpt
 
 import json_to_barescript
 import json_to_csv
+
 import spec_to_json
 
+#print("!!!!!!!")
+#dictionary_of_data_pool = cfl.get_data_pool_items
+#print(dictionary_of_data_pool.keys())
+
 # creating lists for type and subtype to get rid of duplicate entries, for TC List
 
 
@@ -343,13 +349,11 @@ class TstAppWindow(Gtk.ApplicationWindow):
         self.label_widget_telemetry.set_text('TM Table')
         self.feature_area.append_page(child=self.telemetry, tab_label=self.label_widget_telemetry)
 
-
-        """
-        self.tcm = TCTableClass()
-        self.label_widget_tcm = Gtk.Label()
-        self.label_widget_tcm.set_text('TC Table')
-        self.feature_area.append_page(child=self.tcm, tab_label=self.label_widget_tcm)
-        """
+        # data pool list tab
+        self.data_pool_tab = dpt.DataPoolTable()
+        self.label_widget_data_pool = Gtk.Label()
+        self.label_widget_data_pool.set_text('Data Pool')
+        self.feature_area.append_page(child=self.data_pool_tab, tab_label=self.label_widget_data_pool)