diff --git a/apps/grgsm_decode b/apps/grgsm_decode
index 4be199d..8f412bf 100755
--- a/apps/grgsm_decode
+++ b/apps/grgsm_decode
@@ -88,17 +88,11 @@
             self.subslot_filter = grgsm.burst_sdcch_subslot_filter(grgsm.SS_FILTER_SDCCH8, self.subslot)
 
         if self.chan_mode == 'BCCH':
-            self.bcch_demapper = grgsm.universal_ctrl_chans_demapper(self.timeslot,
-                                                                     ([2, 6, 12, 16, 22, 26, 32, 36, 42, 46]),
-                                                                     ([1, 2, 2, 2, 2, 2, 2, 2, 2, 2]))
+            self.bcch_demapper = grgsm.gsm_bcch_ccch_demapper(self.timeslot)
         elif self.chan_mode == 'BCCH_SDCCH4':
-            self.bcch_sdcch4_demapper = grgsm.universal_ctrl_chans_demapper(self.timeslot,
-                                                                            ([2, 6, 12, 16, 22, 26, 32, 36, 42, 46]),
-                                                                            ([1, 2, 2, 2, 7, 7, 7, 7, 135, 135]))
+            self.bcch_sdcch4_demapper = grgsm.gsm_bcch_ccch_sdcch4_demapper(self.timeslot)
         elif self.chan_mode == 'SDCCH8':
-            self.sdcch8_demapper = grgsm.universal_ctrl_chans_demapper(self.timeslot,
-                                                                       ([0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44]),
-                                                                       ([8, 8, 8, 8, 8, 8, 8, 8, 136, 136, 136, 136]))
+            self.sdcch8_demapper = grgsm.gsm_sdcch8_demapper(self.timeslot)
         elif self.chan_mode == 'TCHF':
             self.tch_f_demapper = grgsm.tch_f_chans_demapper(self.timeslot)
             self.tch_f_decoder = grgsm.tch_f_decoder(speech_codec, speech_file)
diff --git a/apps/grgsm_livemon b/apps/grgsm_livemon
index 6c58e08..1d37970 100755
--- a/apps/grgsm_livemon
+++ b/apps/grgsm_livemon
@@ -140,7 +140,7 @@
         
         self._qtgui_freq_sink_x_0_win = sip.wrapinstance(self.qtgui_freq_sink_x_0.pyqwidget(), Qt.QWidget)
         self.top_layout.addWidget(self._qtgui_freq_sink_x_0_win)
-        self.gsm_sdcch8_demapper_0 = grgsm.universal_ctrl_chans_demapper(1, ([0,4,8,12,16,20,24,28,32,36,40,44]), ([8,8,8,8,8,8,8,8,136,136,136,136]))
+        self.gsm_sdcch8_demapper_0 = grgsm.gsm_sdcch8_demapper(1)
         self.gsm_receiver_0 = grgsm.receiver(4, ([0]), ([]))
         self.gsm_message_printer_1 = grgsm.message_printer(pmt.intern(""), False)
         self.gsm_input_0 = grgsm.gsm_input(
@@ -153,7 +153,7 @@
         self.gsm_control_channels_decoder_0_0 = grgsm.control_channels_decoder()
         self.gsm_control_channels_decoder_0 = grgsm.control_channels_decoder()
         self.gsm_clock_offset_control_0 = grgsm.clock_offset_control(fc-shiftoff)
-        self.gsm_bcch_ccch_demapper_0 = grgsm.universal_ctrl_chans_demapper(0, ([2,6,12,16,22,26,32,36,42,46]), ([1,2,2,2,2,2,2,2,2,2]))
+        self.gsm_bcch_ccch_demapper_0 = grgsm.gsm_bcch_ccch_demapper(0)
         self.blocks_socket_pdu_0_0 = blocks.socket_pdu("UDP_SERVER", "127.0.0.1", "4729", 10000)
         self.blocks_socket_pdu_0 = blocks.socket_pdu("UDP_CLIENT", "127.0.0.1", "4729", 10000)
         self.blocks_rotator_cc_0 = blocks.rotator_cc(-2*pi*shiftoff/samp_rate)
diff --git a/apps/grgsm_scanner b/apps/grgsm_scanner
index 94bba43..ebfdb7a 100755
--- a/apps/grgsm_scanner
+++ b/apps/grgsm_scanner
@@ -77,7 +77,7 @@
         )
         self.gsm_control_channels_decoder_0 = grgsm.control_channels_decoder()
         self.gsm_clock_offset_control_0 = grgsm.clock_offset_control(fc)
-        self.gsm_bcch_ccch_demapper_0 = grgsm.universal_ctrl_chans_demapper(0, ([2,6,12,16,22,26,32,36,42,46]), ([1,2,2,2,2,2,2,2,2,2]))
+        self.gsm_bcch_ccch_demapper_0 = grgsm.gsm_bcch_ccch_demapper(0)
 
         ##################################################
         # Connections
diff --git a/grc/demapping/gsm_bcch_ccch_demapper.xml b/grc/demapping/gsm_bcch_ccch_demapper.xml
index b295ce1..ff392f1 100644
--- a/grc/demapping/gsm_bcch_ccch_demapper.xml
+++ b/grc/demapping/gsm_bcch_ccch_demapper.xml
@@ -1,61 +1,30 @@
-<?xml version="1.0"?>
 <block>
   <name>BCCH + CCCH demapper</name>
   <key>gsm_bcch_ccch_demapper</key>
+  <category></category>
   <import>import grgsm</import>
-  <make>grgsm.universal_ctrl_chans_demapper($timeslot_nr, $downlink_starts_fn_mod51, $downlink_channel_types, $uplink_starts_fn_mod51, $uplink_channel_types)</make>
-
+  <make>grgsm.gsm_bcch_ccch_demapper(
+    timeslot_nr=$timeslot_nr,
+)</make>
+  <callback>set_timeslot_nr($timeslot_nr)</callback>
   <param>
-    <name>Timeslot</name>
+    <name>timeslot_nr</name>
     <key>timeslot_nr</key>
     <value>0</value>
-    <type>int</type>
-    <hide>none</hide>
+    <type>raw</type>
   </param>
-
-  <param>
-    <name>downlink_starts_fn_mod51</name>
-    <key>downlink_starts_fn_mod51</key>
-    <value>[2,6,12,16,22,26,32,36,42,46]</value>
-    <type>int_vector</type>
-    <hide>all</hide>
-  </param>
-
-  <param>
-    <name>downlink_channel_types</name>
-    <key>downlink_channel_types</key>
-    <value>[1,2,2,2,2,2,2,2,2,2]</value>
-    <type>int_vector</type>
-    <hide>all</hide>
-  </param>
-
-  <param>
-    <name>uplink_starts_fn_mod51</name>
-    <key>uplink_starts_fn_mod51</key>
-    <value>[]</value>
-    <type>int_vector</type>
-    <hide>all</hide>
-  </param>
-
-  <param>
-    <name>uplink_channel_types</name>
-    <key>uplink_channel_types</key>
-    <value>[]</value>
-    <type>int_vector</type>
-    <hide>all</hide>
-  </param>
-
   <sink>
     <name>bursts</name>
     <type>message</type>
+    <optional>1</optional>
   </sink>
   <source>
     <name>bursts</name>
     <type>message</type>
+    <optional>1</optional>
   </source>
-  
-  <doc>
-      Demapper for BCCH + CCCH control channels.
-      This corresponds to channel combination iv specified in GSM 05.02, section 6.4
-  </doc>
-</block> 
+  <doc>Piotr Krysik
+Demapper for BCCH + CCCH control channels. This corresponds to channel combination iv specified in GSM 05.02, section 6.4
+</doc>
+  <grc_source>gr-gsm/hier_blocks/demapping/gsm_bcch_ccch_demapper.grc</grc_source>
+</block>
diff --git a/grc/demapping/gsm_bcch_ccch_sdcch4_demapper.xml b/grc/demapping/gsm_bcch_ccch_sdcch4_demapper.xml
index 90b33ce..94a433e 100644
--- a/grc/demapping/gsm_bcch_ccch_sdcch4_demapper.xml
+++ b/grc/demapping/gsm_bcch_ccch_sdcch4_demapper.xml
@@ -1,62 +1,30 @@
-<?xml version="1.0"?>
 <block>
   <name>BCCH + CCCH + SDCCH/4 demapper</name>
   <key>gsm_bcch_ccch_sdcch4_demapper</key>
+  <category></category>
   <import>import grgsm</import>
-  <make>grgsm.universal_ctrl_chans_demapper($timeslot_nr, $downlink_starts_fn_mod51, $downlink_channel_types, $uplink_starts_fn_mod51, $uplink_channel_types)</make>
-
+  <make>grgsm.gsm_bcch_ccch_sdcch4_demapper(
+    timeslot_nr=$timeslot_nr,
+)</make>
+  <callback>set_timeslot_nr($timeslot_nr)</callback>
   <param>
-    <name>Timeslot</name>
+    <name>timeslot_nr</name>
     <key>timeslot_nr</key>
     <value>0</value>
-    <type>int</type>
-    <hide>none</hide>
+    <type>raw</type>
   </param>
-
-  <param>
-    <name>downlink_starts_fn_mod51</name>
-    <key>downlink_starts_fn_mod51</key>
-    <value>[2,6,12,16,22,26,32,36,42,46]</value>
-    <type>int_vector</type>
-    <hide>all</hide>
-  </param>
-
-  <param>
-    <name>downlink_channel_types</name>
-    <key>downlink_channel_types</key>
-    <value>[1,2,2,2,7,7,7,7,135,135]</value>
-    <type>int_vector</type>
-    <hide>all</hide>
-  </param>
-
-  <param>
-    <name>uplink_starts_fn_mod51</name>
-    <key>uplink_starts_fn_mod51</key>
-    <value>[0,6,10,37,41,47]</value>
-    <type>int_vector</type>
-    <hide>all</hide>
-  </param>
-
-  <param>
-    <name>uplink_channel_types</name>
-    <key>uplink_channel_types</key>
-    <value>[7,135,135,7,7,7]</value>
-    <type>int_vector</type>
-    <hide>all</hide>
-  </param>
-
   <sink>
     <name>bursts</name>
     <type>message</type>
+    <optional>1</optional>
   </sink>
   <source>
     <name>bursts</name>
     <type>message</type>
+    <optional>1</optional>
   </source>
-  
-  <doc>
-      Demapper for BCCH + CCCH + SDCCH/4 + SACCH/C4 control channels.
-      This corresponds to channel combination v specified in GSM 05.02, section 6.4
-  </doc>
-</block> 
- 
+  <doc>Piotr Krysik
+Demapper for BCCH + CCCH + SDCCH/4 + SACCH/C4 control channels. This corresponds to channel combination v specified in GSM 05.02, section 6.4
+</doc>
+  <grc_source>gr-gsm/hier_blocks/demapping/gsm_bcch_ccch_sdcch4_demapper.grc</grc_source>
+</block>
diff --git a/grc/demapping/gsm_sdcch8_demapper.xml b/grc/demapping/gsm_sdcch8_demapper.xml
index c81032a..7507065 100644
--- a/grc/demapping/gsm_sdcch8_demapper.xml
+++ b/grc/demapping/gsm_sdcch8_demapper.xml
@@ -1,61 +1,30 @@
-<?xml version="1.0"?>
 <block>
   <name>SDCCH/8 demapper</name>
   <key>gsm_sdcch8_demapper</key>
+  <category></category>
   <import>import grgsm</import>
-  <make>grgsm.universal_ctrl_chans_demapper($timeslot_nr, $downlink_starts_fn_mod51, $downlink_channel_types, $uplink_starts_fn_mod51, $uplink_channel_types)</make>
-
+  <make>grgsm.gsm_sdcch8_demapper(
+    timeslot_nr=$timeslot_nr,
+)</make>
+  <callback>set_timeslot_nr($timeslot_nr)</callback>
   <param>
-    <name>Timeslot</name>
+    <name>timeslot_nr</name>
     <key>timeslot_nr</key>
     <value>1</value>
-    <type>int</type>
-    <hide>none</hide>
+    <type>raw</type>
   </param>
-
-  <param>
-    <name>downlink_starts_fn_mod51</name>
-    <key>downlink_starts_fn_mod51</key>
-    <value>[0,4,8,12,16,20,24,28,32,36,40,44]</value>
-    <type>int_vector</type>
-    <hide>all</hide>
-  </param>
-
-  <param>
-    <name>downlink_channel_types</name>
-    <key>downlink_channel_types</key>
-    <value>[8,8,8,8,8,8,8,8,136,136,136,136]</value>
-    <type>int_vector</type>
-    <hide>all</hide>
-  </param>
-
-  <param>
-    <name>uplink_starts_fn_mod51</name>
-    <key>uplink_starts_fn_mod51</key>
-    <value>[15,19,23,27,31,35,39,43,47,0,4,8]</value>
-    <type>int_vector</type>
-    <hide>all</hide>
-  </param>
-
-  <param>
-    <name>uplink_channel_types</name>
-    <key>uplink_channel_types</key>
-    <value>[8,8,8,8,8,8,8,8,136,136,136,136]</value>
-    <type>int_vector</type>
-    <hide>all</hide>
-  </param>
-
   <sink>
     <name>bursts</name>
     <type>message</type>
+    <optional>1</optional>
   </sink>
   <source>
     <name>bursts</name>
     <type>message</type>
+    <optional>1</optional>
   </source>
-  
-  <doc>
-      Demapper for SDCCH/8 + SACCH/C8 control channels.
-      This corresponds to channel combination vii specified in GSM 05.02, section 6.4
-  </doc>
+  <doc>Piotr Krysik
+Demapper for SDCCH/8 + SACCH/C8 control channels. This corresponds to channel combination vii specified in GSM 05.02, section 6.4
+</doc>
+  <grc_source>gr-gsm/hier_blocks/demapping/gsm_sdcch8_demapper.grc</grc_source>
 </block>
diff --git a/grc/demapping/gsm_universal_ctrl_chans_demapper.xml b/grc/demapping/gsm_universal_ctrl_chans_demapper.xml
index 3b522be..f173752 100644
--- a/grc/demapping/gsm_universal_ctrl_chans_demapper.xml
+++ b/grc/demapping/gsm_universal_ctrl_chans_demapper.xml
@@ -3,7 +3,7 @@
   <name>Universal ctrl chans demapper</name>
   <key>gsm_universal_ctrl_chans_demapper</key>
   <import>import grgsm</import>
-  <make>grgsm.universal_ctrl_chans_demapper($timeslot_nr, $downlink_starts_fn_mod51, $downlink_channel_types, $uplink_starts_fn_mod51, $uplink_channel_types)</make>
+  <make>grgsm.universal_ctrl_chans_demapper($timeslot_nr, $downlink_starts_fn_mod51, $downlink_channel_types, $downlink_subslots, $uplink_starts_fn_mod51, $uplink_channel_types, $uplink_subslots)</make>
 
   <param>
     <name>timeslot_nr</name>
@@ -16,7 +16,7 @@
   <param>
     <name>downlink_starts_fn_mod51</name>
     <key>downlink_starts_fn_mod51</key>
-    <value>[2,6,12,16,22,26,32,36,42,46]</value>
+    <value>[0,0,2,2,2,2,6,6,6,6,0,0,12,12,12,12,16,16,16,16,0,0,22,22,22,22,26,26,26,26,0,0,32,32,32,32,36,36,36,36,0,0,42,42,42,42,46,46,46,46,0,]</value>
     <type>int_vector</type>
     <hide>part</hide>
   </param>
@@ -24,7 +24,15 @@
   <param>
     <name>downlink_channel_types</name>
     <key>downlink_channel_types</key>
-    <value>[1,2,2,2,2,2,2,2,2,2]</value>
+    <value>[0,0,1,1,1,1,2,2,2,2,0,0,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,2,2,0,]</value>
+    <type>int_vector</type>
+    <hide>part</hide>
+  </param>
+
+  <param>
+    <name>downlink_subslots</name>
+    <key>downlink_subslots</key>
+    <value>[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,]</value>
     <type>int_vector</type>
     <hide>part</hide>
   </param>
@@ -32,7 +40,7 @@
   <param>
     <name>uplink_starts_fn_mod51</name>
     <key>uplink_starts_fn_mod51</key>
-    <value>[0,6,10,37,41,47]</value>
+    <value>[0,0,0,0,0,0,6,6,6,6,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,37,37,37,41,41,41,41,0,0,47,47,47,47]</value>
     <type>int_vector</type>
     <hide>part</hide>
   </param>
@@ -40,10 +48,18 @@
   <param>
     <name>uplink_channel_types</name>
     <key>uplink_channel_types</key>
-    <value>[2,2,2,2,2,2]</value>
+    <value>[2,2,2,2,0,0,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,0,0,2,2,2,2,]</value>
     <type>int_vector</type>
     <hide>part</hide>
   </param>
+  
+  <param>
+    <name>uplink_subslots</name>
+    <key>uplink_subslots</key>
+    <value>[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,]</value>
+    <type>int_vector</type>
+    <hide>part</hide>
+  </param>  
 
   <sink>
     <name>bursts</name>
@@ -55,5 +71,6 @@
   </source>
   <doc>
       Universal demapper for control channels.
+      Author: Piotr Krysik      
   </doc>
 </block>
diff --git a/hier_blocks/compile_demappers b/hier_blocks/compile_demappers
new file mode 100755
index 0000000..96d652b
--- /dev/null
+++ b/hier_blocks/compile_demappers
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+#This is just helper script for manual compilation of hierarhical blocks
+#by gr-gsm developers
+#Author: Piotr Krysik
+
+cd demapping
+for p in *.grc
+do
+    echo $p
+    grcc $p -d `pwd`
+done
+cd ..
+
+mv ~/.grc_gnuradio/gsm_* .
+
+for file in *.py.xml
+do
+    cat $file | sed 's/.*\<import\>.*/  <import>import grgsm<\/import>/' \
+              | sed 's/<make>/<make>grgsm./' \
+              | sed "s/.*.py//" \
+              | sed 's/<grc_source>.*hier_blocks/<grc_source>gr-gsm\/hier_blocks/' \
+              > ${file}2
+
+    mv ${file}2 $file
+
+    mv "$file" "`basename $file .py.xml`.xml"
+done
+
+for py in *.py
+do
+    cat $py |sed 's/gr.hier_block2/grgsm.hier_block/' > ${py}2
+    mv ${py}2 $py
+done
+
+mv *.py ../python/demapping
+mv *.xml ../grc/demapping
\ No newline at end of file
diff --git a/hier_blocks/demapping/gsm_bcch_ccch_demapper.grc b/hier_blocks/demapping/gsm_bcch_ccch_demapper.grc
new file mode 100644
index 0000000..faef3dd
--- /dev/null
+++ b/hier_blocks/demapping/gsm_bcch_ccch_demapper.grc
@@ -0,0 +1,292 @@
+<?xml version='1.0' encoding='utf-8'?>
+<?grc format='1' created='3.7.9'?>
+<flow_graph>
+  <timestamp>Tue May 17 17:08:42 2016</timestamp>
+  <block>
+    <key>options</key>
+    <param>
+      <key>author</key>
+      <value>Piotr Krysik</value>
+    </param>
+    <param>
+      <key>window_size</key>
+      <value></value>
+    </param>
+    <param>
+      <key>category</key>
+      <value></value>
+    </param>
+    <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
+      <key>description</key>
+      <value>Demapper for BCCH + CCCH control channels. This corresponds to channel combination iv specified in GSM 05.02, section 6.4</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(8, 8)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>generate_options</key>
+      <value>hb</value>
+    </param>
+    <param>
+      <key>hier_block_src_path</key>
+      <value>.:</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>gsm_bcch_ccch_demapper</value>
+    </param>
+    <param>
+      <key>max_nouts</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>qt_qss_theme</key>
+      <value></value>
+    </param>
+    <param>
+      <key>realtime_scheduling</key>
+      <value></value>
+    </param>
+    <param>
+      <key>run_command</key>
+      <value>{python} -u {filename}</value>
+    </param>
+    <param>
+      <key>run_options</key>
+      <value>prompt</value>
+    </param>
+    <param>
+      <key>run</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>thread_safe_setters</key>
+      <value></value>
+    </param>
+    <param>
+      <key>title</key>
+      <value>BCCH + CCCH demapper</value>
+    </param>
+  </block>
+  <block>
+    <key>gsm_universal_ctrl_chans_demapper</key>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(168, 193)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>gsm_universal_ctrl_chans_demapper_0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>downlink_channel_types</key>
+      <value>[0,0,1,1,1,1,2,2,2,2,0,0,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,2,2,0,]</value>
+    </param>
+    <param>
+      <key>downlink_starts_fn_mod51</key>
+      <value>[0,0,2,2,2,2,6,6,6,6,0,0,12,12,12,12,16,16,16,16,0,0,22,22,22,22,26,26,26,26,0,0,32,32,32,32,36,36,36,36,0,0,42,42,42,42,46,46,46,46,0,]</value>
+    </param>
+    <param>
+      <key>downlink_subslots</key>
+      <value>[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,]</value>
+    </param>
+    <param>
+      <key>timeslot_nr</key>
+      <value>timeslot_nr</value>
+    </param>
+    <param>
+      <key>uplink_channel_types</key>
+      <value>[2,2,2,2,0,0,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,0,0,2,2,2,2,]</value>
+    </param>
+    <param>
+      <key>uplink_starts_fn_mod51</key>
+      <value>[0,0,0,0,0,0,6,6,6,6,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,37,37,37,41,41,41,41,0,0,47,47,47,47]</value>
+    </param>
+    <param>
+      <key>uplink_subslots</key>
+      <value>[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,]</value>
+    </param>
+  </block>
+  <block>
+    <key>pad_sink</key>
+    <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(424, 188)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>pad_sink_0</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>message</value>
+    </param>
+    <param>
+      <key>label</key>
+      <value>bursts</value>
+    </param>
+    <param>
+      <key>num_streams</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>optional</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>1</value>
+    </param>
+  </block>
+  <block>
+    <key>pad_source</key>
+    <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(32, 188)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>pad_source_0</value>
+    </param>
+    <param>
+      <key>label</key>
+      <value>bursts</value>
+    </param>
+    <param>
+      <key>num_streams</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>optional</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>message</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>1</value>
+    </param>
+  </block>
+  <block>
+    <key>parameter</key>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(192, 7)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>timeslot_nr</value>
+    </param>
+    <param>
+      <key>label</key>
+      <value>timeslot_nr</value>
+    </param>
+    <param>
+      <key>short_id</key>
+      <value></value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>intx</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>0</value>
+    </param>
+  </block>
+  <connection>
+    <source_block_id>gsm_universal_ctrl_chans_demapper_0</source_block_id>
+    <sink_block_id>pad_sink_0</sink_block_id>
+    <source_key>bursts</source_key>
+    <sink_key>in</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>pad_source_0</source_block_id>
+    <sink_block_id>gsm_universal_ctrl_chans_demapper_0</sink_block_id>
+    <source_key>out</source_key>
+    <sink_key>bursts</sink_key>
+  </connection>
+</flow_graph>
diff --git a/hier_blocks/demapping/gsm_bcch_ccch_sdcch4_demapper.grc b/hier_blocks/demapping/gsm_bcch_ccch_sdcch4_demapper.grc
new file mode 100644
index 0000000..ad5c751
--- /dev/null
+++ b/hier_blocks/demapping/gsm_bcch_ccch_sdcch4_demapper.grc
@@ -0,0 +1,292 @@
+<?xml version='1.0' encoding='utf-8'?>
+<?grc format='1' created='3.7.9'?>
+<flow_graph>
+  <timestamp>Tue May 17 17:08:42 2016</timestamp>
+  <block>
+    <key>options</key>
+    <param>
+      <key>author</key>
+      <value>Piotr Krysik</value>
+    </param>
+    <param>
+      <key>window_size</key>
+      <value></value>
+    </param>
+    <param>
+      <key>category</key>
+      <value></value>
+    </param>
+    <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
+      <key>description</key>
+      <value>Demapper for BCCH + CCCH + SDCCH/4 + SACCH/C4 control channels. This corresponds to channel combination v specified in GSM 05.02, section 6.4</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(8, 8)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>generate_options</key>
+      <value>hb</value>
+    </param>
+    <param>
+      <key>hier_block_src_path</key>
+      <value>.:</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>gsm_bcch_ccch_sdcch4_demapper</value>
+    </param>
+    <param>
+      <key>max_nouts</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>qt_qss_theme</key>
+      <value></value>
+    </param>
+    <param>
+      <key>realtime_scheduling</key>
+      <value></value>
+    </param>
+    <param>
+      <key>run_command</key>
+      <value>{python} -u {filename}</value>
+    </param>
+    <param>
+      <key>run_options</key>
+      <value>prompt</value>
+    </param>
+    <param>
+      <key>run</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>thread_safe_setters</key>
+      <value></value>
+    </param>
+    <param>
+      <key>title</key>
+      <value>BCCH + CCCH + SDCCH/4 demapper</value>
+    </param>
+  </block>
+  <block>
+    <key>gsm_universal_ctrl_chans_demapper</key>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(168, 193)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>gsm_universal_ctrl_chans_demapper_0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>downlink_channel_types</key>
+      <value>[0,0,1,1,1,1,2,2,2,2,0,0,2,2,2,2,2,2,2,2,0,0,7,7,7,7,7,7,7,7,0,0,7,7,7,7,7,7,7,7,0,0,135,135,135,135,135,135,135,135,0]</value>
+    </param>
+    <param>
+      <key>downlink_starts_fn_mod51</key>
+      <value>[0,0,2,2,2,2,6,6,6,6,0,0,12,12,12,12,16,16,16,16,0,0,22,22,22,22,26,26,26,26,0,0,32,32,32,32,36,36,36,36,0,0,42,42,42,42,46,46,46,46,0,]</value>
+    </param>
+    <param>
+      <key>downlink_subslots</key>
+      <value>[0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,0,0,0,0,0,0,1,1,1,1,0,0,2,2,2,2,3,3,3,3,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,0,0,0,0,0,0,1,1,1,1,0,0,2,2,2,2,3,3,3,3,0,0,2,2,2,2,3,3,3,3,0,]</value>
+    </param>
+    <param>
+      <key>timeslot_nr</key>
+      <value>timeslot_nr</value>
+    </param>
+    <param>
+      <key>uplink_channel_types</key>
+      <value>[7,7,7,7,0,0,135,135,135,135,135,135,135,135,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,7,7,7,0,0,7,7,7,7,]</value>
+    </param>
+    <param>
+      <key>uplink_starts_fn_mod51</key>
+      <value>[0,0,0,0,0,0,6,6,6,6,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,37,37,37,41,41,41,41,0,0,47,47,47,47,]</value>
+    </param>
+    <param>
+      <key>uplink_subslots</key>
+      <value>[0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,0,0,3,3,3,3,0,0,0,0,0,0,2,2,2,2,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,0,0,3,3,3,3,]</value>
+    </param>
+  </block>
+  <block>
+    <key>pad_sink</key>
+    <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(416, 188)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>pad_sink_0</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>message</value>
+    </param>
+    <param>
+      <key>label</key>
+      <value>bursts</value>
+    </param>
+    <param>
+      <key>num_streams</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>optional</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>1</value>
+    </param>
+  </block>
+  <block>
+    <key>pad_source</key>
+    <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(32, 188)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>pad_source_0</value>
+    </param>
+    <param>
+      <key>label</key>
+      <value>bursts</value>
+    </param>
+    <param>
+      <key>num_streams</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>optional</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>message</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>1</value>
+    </param>
+  </block>
+  <block>
+    <key>parameter</key>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(192, 7)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>timeslot_nr</value>
+    </param>
+    <param>
+      <key>label</key>
+      <value>timeslot_nr</value>
+    </param>
+    <param>
+      <key>short_id</key>
+      <value></value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>intx</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>0</value>
+    </param>
+  </block>
+  <connection>
+    <source_block_id>gsm_universal_ctrl_chans_demapper_0</source_block_id>
+    <sink_block_id>pad_sink_0</sink_block_id>
+    <source_key>bursts</source_key>
+    <sink_key>in</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>pad_source_0</source_block_id>
+    <sink_block_id>gsm_universal_ctrl_chans_demapper_0</sink_block_id>
+    <source_key>out</source_key>
+    <sink_key>bursts</sink_key>
+  </connection>
+</flow_graph>
diff --git a/hier_blocks/demapping/gsm_sdcch8_demapper.grc b/hier_blocks/demapping/gsm_sdcch8_demapper.grc
new file mode 100644
index 0000000..3cc5f7e
--- /dev/null
+++ b/hier_blocks/demapping/gsm_sdcch8_demapper.grc
@@ -0,0 +1,292 @@
+<?xml version='1.0' encoding='utf-8'?>
+<?grc format='1' created='3.7.9'?>
+<flow_graph>
+  <timestamp>Tue May 17 17:08:42 2016</timestamp>
+  <block>
+    <key>options</key>
+    <param>
+      <key>author</key>
+      <value>Piotr Krysik</value>
+    </param>
+    <param>
+      <key>window_size</key>
+      <value></value>
+    </param>
+    <param>
+      <key>category</key>
+      <value></value>
+    </param>
+    <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
+      <key>description</key>
+      <value>Demapper for SDCCH/8 + SACCH/C8 control channels. This corresponds to channel combination vii specified in GSM 05.02, section 6.4</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(8, 8)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>generate_options</key>
+      <value>hb</value>
+    </param>
+    <param>
+      <key>hier_block_src_path</key>
+      <value>.:</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>gsm_sdcch8_demapper</value>
+    </param>
+    <param>
+      <key>max_nouts</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>qt_qss_theme</key>
+      <value></value>
+    </param>
+    <param>
+      <key>realtime_scheduling</key>
+      <value></value>
+    </param>
+    <param>
+      <key>run_command</key>
+      <value>{python} -u {filename}</value>
+    </param>
+    <param>
+      <key>run_options</key>
+      <value>prompt</value>
+    </param>
+    <param>
+      <key>run</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>thread_safe_setters</key>
+      <value></value>
+    </param>
+    <param>
+      <key>title</key>
+      <value>SDCCH/8 demapper</value>
+    </param>
+  </block>
+  <block>
+    <key>gsm_universal_ctrl_chans_demapper</key>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(168, 193)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>gsm_universal_ctrl_chans_demapper_0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>downlink_channel_types</key>
+      <value>[0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,0,0,0]</value>
+    </param>
+    <param>
+      <key>downlink_starts_fn_mod51</key>
+      <value>[0,0,0,0,4,4,4,4,8,8,8,8,12,12,12,12,16,16,16,16,20,20,20,20,24,24,24,24,28,28,28,28,32,32,32,32,36,36,36,36,40,40,40,40,44,44,44,44,0,0,0]</value>
+    </param>
+    <param>
+      <key>downlink_subslots</key>
+      <value>[0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,0,0,0,]</value>
+    </param>
+    <param>
+      <key>timeslot_nr</key>
+      <value>timeslot_nr</value>
+    </param>
+    <param>
+      <key>uplink_channel_types</key>
+      <value>[1,1,1,1,2,2,2,2,3,3,3,3,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,0,0,0,0,5,5,5,5,6,6,6,6,7,7,7,7,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,4,4,4,4]</value>
+    </param>
+    <param>
+      <key>uplink_starts_fn_mod51</key>
+      <value>[136,136,136,136,136,136,136,136,136,136,136,136,0,0,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,136,136,136,136]</value>
+    </param>
+    <param>
+      <key>uplink_subslots</key>
+      <value>[1,1,1,1,2,2,2,2,3,3,3,3,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,0,0,0,0,5,5,5,5,6,6,6,6,7,7,7,7,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,4,4,4,4,]</value>
+    </param>
+  </block>
+  <block>
+    <key>pad_sink</key>
+    <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(416, 188)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>pad_sink_0</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>message</value>
+    </param>
+    <param>
+      <key>label</key>
+      <value>bursts</value>
+    </param>
+    <param>
+      <key>num_streams</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>optional</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>1</value>
+    </param>
+  </block>
+  <block>
+    <key>pad_source</key>
+    <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(32, 188)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>pad_source_0</value>
+    </param>
+    <param>
+      <key>label</key>
+      <value>bursts</value>
+    </param>
+    <param>
+      <key>num_streams</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>optional</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>message</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>1</value>
+    </param>
+  </block>
+  <block>
+    <key>parameter</key>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(192, 7)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>timeslot_nr</value>
+    </param>
+    <param>
+      <key>label</key>
+      <value>timeslot_nr</value>
+    </param>
+    <param>
+      <key>short_id</key>
+      <value></value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>intx</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>1</value>
+    </param>
+  </block>
+  <connection>
+    <source_block_id>gsm_universal_ctrl_chans_demapper_0</source_block_id>
+    <sink_block_id>pad_sink_0</sink_block_id>
+    <source_key>bursts</source_key>
+    <sink_key>in</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>pad_source_0</source_block_id>
+    <sink_block_id>gsm_universal_ctrl_chans_demapper_0</sink_block_id>
+    <source_key>out</source_key>
+    <sink_key>bursts</sink_key>
+  </connection>
+</flow_graph>
diff --git a/include/grgsm/demapping/universal_ctrl_chans_demapper.h b/include/grgsm/demapping/universal_ctrl_chans_demapper.h
index c1778af..eea2bde 100644
--- a/include/grgsm/demapping/universal_ctrl_chans_demapper.h
+++ b/include/grgsm/demapping/universal_ctrl_chans_demapper.h
@@ -49,7 +49,7 @@
        * class. gsm::universal_ctrl_chans_demapper::make is the public interface for
        * creating new instances.
        */
-      static sptr make(unsigned int timeslot_nr, const std::vector<int> &downlink_starts_fn_mod51, const std::vector<int> &downlink_channel_types, const std::vector<int> &uplink_starts_fn_mod51=std::vector<int>(), const std::vector<int> &uplink_channel_types=std::vector<int>());
+      static sptr make(unsigned int timeslot_nr, const std::vector<int> &downlink_starts_fn_mod51, const std::vector<int> &downlink_channel_types, const std::vector<int> &downlink_subslots, const std::vector<int> &uplink_starts_fn_mod51=std::vector<int>(), const std::vector<int> &uplink_channel_types=std::vector<int>(), const std::vector<int> &uplink_subslots=std::vector<int>());
     };
 
   } // namespace gsm
diff --git a/lib/demapping/universal_ctrl_chans_demapper_impl.cc b/lib/demapping/universal_ctrl_chans_demapper_impl.cc
index cbbbc32..32987ca 100644
--- a/lib/demapping/universal_ctrl_chans_demapper_impl.cc
+++ b/lib/demapping/universal_ctrl_chans_demapper_impl.cc
@@ -36,158 +36,34 @@
   namespace gsm {
 
     universal_ctrl_chans_demapper::sptr
-    universal_ctrl_chans_demapper::make(unsigned int timeslot_nr, const std::vector<int> &downlink_starts_fn_mod51, const std::vector<int> &downlink_channel_types, const std::vector<int> &uplink_starts_fn_mod51, const std::vector<int> &uplink_channel_types)
-    {
+    universal_ctrl_chans_demapper::make(unsigned int timeslot_nr, const std::vector<int> &downlink_starts_fn_mod51, const std::vector<int> &downlink_channel_types, const std::vector<int> &downlink_subslots, const std::vector<int> &uplink_starts_fn_mod51, const std::vector<int> &uplink_channel_types, const std::vector<int> &uplink_subslots)
+    {     
       return gnuradio::get_initial_sptr
-        (new universal_ctrl_chans_demapper_impl(timeslot_nr, downlink_starts_fn_mod51, downlink_channel_types, uplink_starts_fn_mod51, uplink_channel_types));
+        (new universal_ctrl_chans_demapper_impl(timeslot_nr, downlink_starts_fn_mod51, downlink_channel_types, downlink_subslots, uplink_starts_fn_mod51, uplink_channel_types, uplink_subslots));
     }
 
     /*
      * The private constructor
      */
-    universal_ctrl_chans_demapper_impl::universal_ctrl_chans_demapper_impl(unsigned int timeslot_nr, const std::vector<int> &downlink_starts_fn_mod51, const std::vector<int> &downlink_channel_types, const std::vector<int> &uplink_starts_fn_mod51, const std::vector<int> &uplink_channel_types)
+    universal_ctrl_chans_demapper_impl::universal_ctrl_chans_demapper_impl(unsigned int timeslot_nr, const std::vector<int> &downlink_starts_fn_mod51, const std::vector<int> &downlink_channel_types, const std::vector<int> &downlink_subslots, const std::vector<int> &uplink_starts_fn_mod51, const std::vector<int> &uplink_channel_types, const std::vector<int> &uplink_subslots)
       : gr::block("universal_ctrl_chans_demapper",
               gr::io_signature::make(0, 0, 0),
               gr::io_signature::make(0, 0, 0)),
-       d_timeslot(timeslot_nr)
-              
+        d_timeslot_nr(timeslot_nr),
+        d_downlink_starts_fn_mod51(51, 0),
+        d_downlink_channel_types(51, 0),
+        d_downlink_subslots(102, 0),
+        d_uplink_starts_fn_mod51(51, 0),
+        d_uplink_channel_types(51, 0),
+        d_uplink_subslots(102, 0)
     {
-    
-        
-        for(int ii=0; ii<51; ii++)
-        {
-            d_downlink_starts_fn_mod51[ii]=0;
-            d_downlink_channel_types[ii]=0;
-            d_downlink_subslots[ii] = 0;
-            d_downlink_subslots[ii+51] = 0;
-
-            d_uplink_starts_fn_mod51[ii]=0;
-            d_uplink_channel_types[ii]=0;
-            d_uplink_subslots[ii] = 0;
-            d_uplink_subslots[ii+51] = 0;
-        }
-        
-        std::vector<int>::const_iterator s;
-        std::vector<int>::const_iterator ch_type;
-        
-        for(s=downlink_starts_fn_mod51.begin(), ch_type=downlink_channel_types.begin();s != downlink_starts_fn_mod51.end(); s++)
-        {
-            if((*s >= 0) and (*s <= (51-4)))
-            {
-                for(int ii=0; ii<4; ii++){
-                    d_downlink_starts_fn_mod51[*s+ii] = *s;
-                    if(ch_type!=downlink_channel_types.end())
-                    {
-                        d_downlink_channel_types[*s+ii] = *ch_type;
-                    }
-                }
-                if(ch_type!=downlink_channel_types.end())
-                {
-                    ch_type++;
-                }
-            }
-        }
-        
-        for(s=uplink_starts_fn_mod51.begin(), ch_type=uplink_channel_types.begin();s != uplink_starts_fn_mod51.end(); s++)
-        {
-            if((*s >= 0) and (*s <= (51-4)))
-            {
-                for(int ii=0; ii<4; ii++){
-                    d_uplink_starts_fn_mod51[*s+ii] = *s;
-                    if(ch_type!=uplink_channel_types.end())
-                    {
-                        d_uplink_channel_types[*s+ii] = *ch_type;
-                    }
-                }
-                if(ch_type!=uplink_channel_types.end())
-                {
-                    ch_type++;
-                }
-            }
-        }
-        
-        std::set<int> distinct_downlink_channels(downlink_channel_types.begin(), downlink_channel_types.end());
-        std::set<int>::iterator it;
-        unsigned int subslot;
-        
-        for (it=distinct_downlink_channels.begin(); it != distinct_downlink_channels.end(); it++)
-        {
-            subslot = 0;
-            for(s=downlink_starts_fn_mod51.begin();s != downlink_starts_fn_mod51.end(); s++)
-            {
-                if ((d_downlink_channel_types[*s] == *it) and (*s >= 0) and (*s <= (51-4)))
-                {
-                    for(int ii=0; ii<4; ii++)
-                    {
-                        d_downlink_subslots[*s+ii] = subslot;
-                        d_downlink_subslots[*s+ii+51] = subslot;
-                    }
-                    subslot++;
-                }
-            }
-            
-            if (*it == GSMTAP_CHANNEL_ACCH or 
-                *it == (GSMTAP_CHANNEL_ACCH|GSMTAP_CHANNEL_SDCCH) or
-                *it == (GSMTAP_CHANNEL_ACCH|GSMTAP_CHANNEL_SDCCH4) or
-                *it == (GSMTAP_CHANNEL_ACCH|GSMTAP_CHANNEL_SDCCH8) or
-                *it == (GSMTAP_CHANNEL_ACCH|GSMTAP_CHANNEL_TCH_F) or
-                *it == (GSMTAP_CHANNEL_ACCH|GSMTAP_CHANNEL_TCH_H)
-            )
-            {
-                for(s=downlink_starts_fn_mod51.begin();s != downlink_starts_fn_mod51.end(); s++)
-                {
-                    if ((d_downlink_channel_types[*s] == *it) and (*s >= 0) and (*s <= (51-4)))
-                    {
-                        for(int ii=0; ii<4; ii++)
-                        {
-                            d_downlink_subslots[*s+ii+51] = subslot;
-                        }
-                        subslot++;
-                    }
-                }
-            }
-        }
-        
-        std::set<int> distinct_uplink_channels(uplink_channel_types.begin(), uplink_channel_types.end());
-        for (it=distinct_uplink_channels.begin(); it != distinct_uplink_channels.end(); it++)
-        {
-            subslot = 0;
-            for(s=uplink_starts_fn_mod51.begin();s != uplink_starts_fn_mod51.end(); s++)
-            {
-                if ((d_uplink_channel_types[*s] == *it) and (*s >= 0) and (*s <= (51-4)))
-                {
-                    for(int ii=0; ii<4; ii++)
-                    {
-                        d_uplink_subslots[*s+ii] = subslot;
-                        d_uplink_subslots[*s+ii+51] = subslot;
-                    }
-                    subslot++;
-                }
-            }
-            
-            if (*it == GSMTAP_CHANNEL_ACCH or 
-                *it == (GSMTAP_CHANNEL_ACCH|GSMTAP_CHANNEL_SDCCH) or
-                *it == (GSMTAP_CHANNEL_ACCH|GSMTAP_CHANNEL_SDCCH4) or
-                *it == (GSMTAP_CHANNEL_ACCH|GSMTAP_CHANNEL_SDCCH8) or
-                *it == (GSMTAP_CHANNEL_ACCH|GSMTAP_CHANNEL_TCH_F) or
-                *it == (GSMTAP_CHANNEL_ACCH|GSMTAP_CHANNEL_TCH_H)
-            )
-            {
-                for(s=uplink_starts_fn_mod51.begin();s != uplink_starts_fn_mod51.end(); s++)
-                {
-                    if ((d_uplink_channel_types[*s] == *it) and (*s >= 0) and (*s <= (51-4)))
-                    {
-                        for(int ii=0; ii<4; ii++)
-                        {
-                            d_uplink_subslots[*s+ii+51] = subslot;
-                        }
-                        subslot++;
-                    }
-                }
-            }
-        }
-
-        
+        std::copy(downlink_starts_fn_mod51.begin(), downlink_starts_fn_mod51.end(), d_downlink_starts_fn_mod51.begin());
+        std::copy(downlink_channel_types.begin(), downlink_channel_types.end(), d_downlink_channel_types.begin());
+        std::copy(downlink_subslots.begin(), downlink_subslots.end(), d_downlink_subslots.begin());
+        std::copy(uplink_starts_fn_mod51.begin(), uplink_starts_fn_mod51.end(), d_uplink_starts_fn_mod51.begin());
+        std::copy(uplink_channel_types.begin(), uplink_channel_types.end(), d_uplink_channel_types.begin());
+        std::copy(uplink_subslots.begin(), uplink_subslots.end(), d_uplink_subslots.begin());
+       
         message_port_register_in(pmt::mp("bursts"));
         set_msg_handler(pmt::mp("bursts"), boost::bind(&universal_ctrl_chans_demapper_impl::filter_ctrl_chans, this, _1));
         message_port_register_out(pmt::mp("bursts"));
@@ -205,99 +81,79 @@
         pmt::pmt_t header_plus_burst = pmt::cdr(msg);
         gsmtap_hdr * header = (gsmtap_hdr *)pmt::blob_data(header_plus_burst);
 
-        uint32_t frame_nr = be32toh(header->frame_number);
-        uint32_t fn_mod51 = frame_nr % 51;
-        
-        bool uplink_burst = (be16toh(header->arfcn) & 0x4000) ? true : false;
-
-        if(header->timeslot==d_timeslot){
+        if(header->timeslot==d_timeslot_nr)
+        {
+            int * starts_fn_mod51;
+            int * channel_types;
+            int * subslots;
+            uint32_t * frame_numbers;
+            pmt::pmt_t * bursts;                  
+            
+            uint32_t frame_nr = be32toh(header->frame_number); //get frame number
+            uint32_t fn_mod51 = frame_nr % 51; //frame number modulo 51
+            
+            //crate new message
             int8_t new_msg[sizeof(gsmtap_hdr)+BURST_SIZE];
             gsmtap_hdr * new_hdr = (gsmtap_hdr*)new_msg;
             memcpy(new_msg, header, sizeof(gsmtap_hdr)+BURST_SIZE);
             pmt::pmt_t msg_binary_blob = pmt::make_blob(new_msg,sizeof(gsmtap_hdr)+BURST_SIZE);
             pmt::pmt_t msg_out = pmt::cons(pmt::PMT_NIL, msg_binary_blob);
-	    
-            if(uplink_burst)
-            {
-                uint32_t fn51_start = d_uplink_starts_fn_mod51[fn_mod51];
-                uint32_t fn51_stop = fn51_start + 3;
-                uint32_t ch_type = d_uplink_channel_types[fn_mod51];
 
-                if(ch_type != 0)
-                {
-                    new_hdr->sub_type = ch_type;
-                }
-                new_hdr->sub_slot = d_uplink_subslots[fn_mod51 + (51 * (frame_nr % 2))];
-                
-                if(fn_mod51>=fn51_start && fn_mod51<=fn51_stop)
-                {
-                    uint32_t ii = fn_mod51 - fn51_start;
-                    d_uplink_frame_numbers[ii] = frame_nr;
-                    d_uplink_bursts[ii] = msg_out;
-                }
-                
-                if(fn_mod51==fn51_stop)
-                {
-                    //check for a situation where some bursts were lost
-                    //in this situation frame numbers won't be consecutive
-                    bool frames_are_consecutive = true;
-                    for(int jj=1; jj<4; jj++)
-                    {
-                        if((d_uplink_frame_numbers[jj]-d_uplink_frame_numbers[jj-1])!=1)
-                        {
-                            frames_are_consecutive = false;
-                        }
-                    }
-                    if(frames_are_consecutive)
-                    {
-                        //send bursts to the output
-                        for(int jj=0; jj<4; jj++)
-                        {
-                            message_port_pub(pmt::mp("bursts"), d_uplink_bursts[jj]);
-                        }
-                    } 
-                }
+            //get information if burst is from uplink or downlink            
+            bool uplink_burst = (be16toh(header->arfcn) & 0x4000) ? true : false;
+
+            //select right set of configuration and history for uplink or downlink
+            if(uplink_burst) {
+                starts_fn_mod51 = &d_uplink_starts_fn_mod51[0];
+                channel_types = &d_uplink_channel_types[0];
+                subslots = &d_uplink_subslots[0];
+                frame_numbers = d_uplink_frame_numbers;
+                bursts = d_uplink_bursts;
+            } else {
+                starts_fn_mod51 = &d_downlink_starts_fn_mod51[0];
+                channel_types = &d_downlink_channel_types[0];
+                subslots = &d_downlink_subslots[0];
+                frame_numbers = d_downlink_frame_numbers;
+                bursts = d_downlink_bursts;
             }
-            else 
-            {
-                uint32_t fn51_start = d_downlink_starts_fn_mod51[fn_mod51];
-                uint32_t fn51_stop = fn51_start + 3;
-                uint32_t ch_type = d_downlink_channel_types[fn_mod51];
+                      
+            uint32_t fn51_start = starts_fn_mod51[fn_mod51];
+            uint32_t fn51_stop = fn51_start + 3;
+            uint32_t ch_type = channel_types[fn_mod51];
 
-                if(ch_type != 0)
+            if(ch_type != 0)
+            {
+                new_hdr->sub_type = ch_type;
+            }
+            new_hdr->sub_slot = subslots[fn_mod51 + (51 * (frame_nr % 2))];
+            
+            if(fn_mod51>=fn51_start && fn_mod51<=fn51_stop)
+            {
+                uint32_t ii = fn_mod51 - fn51_start;
+                frame_numbers[ii] = frame_nr;
+                bursts[ii] = msg_out;
+            }
+            
+            if(fn_mod51==fn51_stop)
+            {
+                //check for a situation where some bursts were lost
+                //in this situation frame numbers won't be consecutive
+                bool frames_are_consecutive = true;
+                for(int jj=1; jj<4; jj++)
                 {
-                    new_hdr->sub_type = ch_type;
-                }
-                new_hdr->sub_slot = d_downlink_subslots[fn_mod51 + (51 * (frame_nr % 2))];
-                
-                if(fn_mod51>=fn51_start && fn_mod51<=fn51_stop)
-                {
-                    uint32_t ii = fn_mod51 - fn51_start;
-                    d_downlink_frame_numbers[ii] = frame_nr;
-                    d_downlink_bursts[ii] = msg_out;
-                }
-                
-                if(fn_mod51==fn51_stop)
-                {
-                    //check for a situation where some bursts were lost
-                    //in this situation frame numbers won't be consecutive
-                    bool frames_are_consecutive = true;
-                    for(int jj=1; jj<4; jj++)
+                    if((frame_numbers[jj] - frame_numbers[jj-1])!=1)
                     {
-                        if((d_downlink_frame_numbers[jj]-d_downlink_frame_numbers[jj-1])!=1)
-                        {
-                            frames_are_consecutive = false;
-                        }
+                        frames_are_consecutive = false;
                     }
-                    if(frames_are_consecutive)
-                    {
-                        //send bursts to the output
-                        for(int jj=0; jj<4; jj++)
-                        {
-                            message_port_pub(pmt::mp("bursts"), d_downlink_bursts[jj]);
-                        }
-                    } 
                 }
+                if(frames_are_consecutive)
+                {
+                    //send bursts to the output
+                    for(int jj=0; jj<4; jj++)
+                    {
+                        message_port_pub(pmt::mp("bursts"), bursts[jj]);
+                    }
+                } 
             }
         }
     }
diff --git a/lib/demapping/universal_ctrl_chans_demapper_impl.h b/lib/demapping/universal_ctrl_chans_demapper_impl.h
index 0316bf4..9545ab6 100644
--- a/lib/demapping/universal_ctrl_chans_demapper_impl.h
+++ b/lib/demapping/universal_ctrl_chans_demapper_impl.h
@@ -29,23 +29,28 @@
 namespace gr {
   namespace gsm {
 
+    typedef enum {downlink=0,uplink=1} um_radio_link_direction;
     class universal_ctrl_chans_demapper_impl : public universal_ctrl_chans_demapper
     {
      private:
-      unsigned int d_downlink_starts_fn_mod51[51];
-      unsigned int d_uplink_starts_fn_mod51[51];
-      unsigned int d_downlink_channel_types[51];
-      unsigned int d_uplink_channel_types[51];
-      unsigned int d_downlink_subslots[102];
-      unsigned int d_uplink_subslots[102];
-      unsigned int d_timeslot;
-      uint32_t d_downlink_frame_numbers[4];
-      uint32_t d_uplink_frame_numbers[4];
-      pmt::pmt_t d_downlink_bursts[4];
-      pmt::pmt_t d_uplink_bursts[4];
+        //configuration of the block
+        unsigned int d_timeslot_nr;
+        std::vector<int> d_downlink_starts_fn_mod51;
+        std::vector<int> d_downlink_channel_types;
+        std::vector<int> d_downlink_subslots;
+
+        std::vector<int> d_uplink_starts_fn_mod51;
+        std::vector<int> d_uplink_channel_types;
+        std::vector<int> d_uplink_subslots;
+
+        //history of the downlink and uplink bursts
+        uint32_t d_downlink_frame_numbers[4];
+        pmt::pmt_t d_downlink_bursts[4];
+        uint32_t d_uplink_frame_numbers[4];
+        pmt::pmt_t d_uplink_bursts[4];
      public:
-      universal_ctrl_chans_demapper_impl(unsigned int timeslot_nr, const std::vector<int> &downlink_starts_fn_mod51, const std::vector<int> &downlink_channel_types, const std::vector<int> &uplink_starts_fn_mod51, const std::vector<int> &uplink_channel_types);
-      ~universal_ctrl_chans_demapper_impl();
+        universal_ctrl_chans_demapper_impl(unsigned int timeslot_nr, const std::vector<int> &downlink_starts_fn_mod51, const std::vector<int> &downlink_channel_types, const std::vector<int> &downlink_subslots, const std::vector<int> &uplink_starts_fn_mod51, const std::vector<int> &uplink_channel_types, const std::vector<int> &uplink_subslots);
+        ~universal_ctrl_chans_demapper_impl();
 
       void filter_ctrl_chans(pmt::pmt_t msg);
     };
diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt
index 04a97c2..8fc48de 100644
--- a/python/CMakeLists.txt
+++ b/python/CMakeLists.txt
@@ -31,6 +31,9 @@
 GR_PYTHON_INSTALL(
     FILES
     __init__.py
+    demapping/gsm_bcch_ccch_demapper.py
+    demapping/gsm_bcch_ccch_sdcch4_demapper.py
+    demapping/gsm_sdcch8_demapper.py
     receiver/gsm_input.py
     receiver/gsm_wideband_input.py
     receiver/fcch_burst_tagger.py
diff --git a/python/__init__.py b/python/__init__.py
index 247c040..dfa7a0e 100644
--- a/python/__init__.py
+++ b/python/__init__.py
@@ -53,6 +53,9 @@
 from clock_offset_corrector import clock_offset_corrector
 from gsm_input import gsm_input
 from gsm_wideband_input import gsm_wideband_input
+from gsm_bcch_ccch_demapper import gsm_bcch_ccch_demapper
+from gsm_bcch_ccch_sdcch4_demapper import gsm_bcch_ccch_sdcch4_demapper
+from gsm_sdcch8_demapper import gsm_sdcch8_demapper
 
 import arfcn
 
diff --git a/python/demapping/gsm_bcch_ccch_demapper.py b/python/demapping/gsm_bcch_ccch_demapper.py
new file mode 100644
index 0000000..adb4c12
--- /dev/null
+++ b/python/demapping/gsm_bcch_ccch_demapper.py
@@ -0,0 +1,46 @@
+# -*- coding: utf-8 -*-
+##################################################
+# GNU Radio Python Flow Graph
+# Title: BCCH + CCCH demapper
+# Author: Piotr Krysik
+# Description: Demapper for BCCH + CCCH control channels. This corresponds to channel combination iv specified in GSM 05.02, section 6.4
+# Generated: Fri May 20 12:11:59 2016
+##################################################
+
+from gnuradio import gr
+from gnuradio.filter import firdes
+import grgsm
+
+
+class gsm_bcch_ccch_demapper(grgsm.hier_block):
+
+    def __init__(self, timeslot_nr=0):
+        grgsm.hier_block.__init__(
+            self, "BCCH + CCCH demapper",
+            gr.io_signature(0, 0, 0),
+            gr.io_signature(0, 0, 0),
+        )
+        self.message_port_register_hier_in("bursts")
+        self.message_port_register_hier_out("bursts")
+
+        ##################################################
+        # Parameters
+        ##################################################
+        self.timeslot_nr = timeslot_nr
+
+        ##################################################
+        # Blocks
+        ##################################################
+        self.gsm_universal_ctrl_chans_demapper_0 = grgsm.universal_ctrl_chans_demapper(timeslot_nr, ([0,0,2,2,2,2,6,6,6,6,0,0,12,12,12,12,16,16,16,16,0,0,22,22,22,22,26,26,26,26,0,0,32,32,32,32,36,36,36,36,0,0,42,42,42,42,46,46,46,46,0,]), ([0,0,1,1,1,1,2,2,2,2,0,0,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,2,2,0,0,2,2,2,2,2,2,2,2,0,]), ([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,]), ([0,0,0,0,0,0,6,6,6,6,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,37,37,37,41,41,41,41,0,0,47,47,47,47]), ([2,2,2,2,0,0,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,0,0,2,2,2,2,]), ([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,]))
+
+        ##################################################
+        # Connections
+        ##################################################
+        self.msg_connect((self.gsm_universal_ctrl_chans_demapper_0, 'bursts'), (self, 'bursts'))    
+        self.msg_connect((self, 'bursts'), (self.gsm_universal_ctrl_chans_demapper_0, 'bursts'))    
+
+    def get_timeslot_nr(self):
+        return self.timeslot_nr
+
+    def set_timeslot_nr(self, timeslot_nr):
+        self.timeslot_nr = timeslot_nr
diff --git a/python/demapping/gsm_bcch_ccch_sdcch4_demapper.py b/python/demapping/gsm_bcch_ccch_sdcch4_demapper.py
new file mode 100644
index 0000000..92fb5f0
--- /dev/null
+++ b/python/demapping/gsm_bcch_ccch_sdcch4_demapper.py
@@ -0,0 +1,46 @@
+# -*- coding: utf-8 -*-
+##################################################
+# GNU Radio Python Flow Graph
+# Title: BCCH + CCCH + SDCCH/4 demapper
+# Author: Piotr Krysik
+# Description: Demapper for BCCH + CCCH + SDCCH/4 + SACCH/C4 control channels. This corresponds to channel combination v specified in GSM 05.02, section 6.4
+# Generated: Fri May 20 12:12:01 2016
+##################################################
+
+from gnuradio import gr
+from gnuradio.filter import firdes
+import grgsm
+
+
+class gsm_bcch_ccch_sdcch4_demapper(grgsm.hier_block):
+
+    def __init__(self, timeslot_nr=0):
+        grgsm.hier_block.__init__(
+            self, "BCCH + CCCH + SDCCH/4 demapper",
+            gr.io_signature(0, 0, 0),
+            gr.io_signature(0, 0, 0),
+        )
+        self.message_port_register_hier_in("bursts")
+        self.message_port_register_hier_out("bursts")
+
+        ##################################################
+        # Parameters
+        ##################################################
+        self.timeslot_nr = timeslot_nr
+
+        ##################################################
+        # Blocks
+        ##################################################
+        self.gsm_universal_ctrl_chans_demapper_0 = grgsm.universal_ctrl_chans_demapper(timeslot_nr, ([0,0,2,2,2,2,6,6,6,6,0,0,12,12,12,12,16,16,16,16,0,0,22,22,22,22,26,26,26,26,0,0,32,32,32,32,36,36,36,36,0,0,42,42,42,42,46,46,46,46,0,]), ([0,0,1,1,1,1,2,2,2,2,0,0,2,2,2,2,2,2,2,2,0,0,7,7,7,7,7,7,7,7,0,0,7,7,7,7,7,7,7,7,0,0,135,135,135,135,135,135,135,135,0]), ([0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,0,0,0,0,0,0,1,1,1,1,0,0,2,2,2,2,3,3,3,3,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,0,0,0,0,0,0,1,1,1,1,0,0,2,2,2,2,3,3,3,3,0,0,2,2,2,2,3,3,3,3,0,]), ([0,0,0,0,0,0,6,6,6,6,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,37,37,37,41,41,41,41,0,0,47,47,47,47,]), ([7,7,7,7,0,0,135,135,135,135,135,135,135,135,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,7,7,7,0,0,7,7,7,7,]), ([0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,0,0,3,3,3,3,0,0,0,0,0,0,2,2,2,2,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,0,0,3,3,3,3,]))
+
+        ##################################################
+        # Connections
+        ##################################################
+        self.msg_connect((self.gsm_universal_ctrl_chans_demapper_0, 'bursts'), (self, 'bursts'))    
+        self.msg_connect((self, 'bursts'), (self.gsm_universal_ctrl_chans_demapper_0, 'bursts'))    
+
+    def get_timeslot_nr(self):
+        return self.timeslot_nr
+
+    def set_timeslot_nr(self, timeslot_nr):
+        self.timeslot_nr = timeslot_nr
diff --git a/python/demapping/gsm_sdcch8_demapper.py b/python/demapping/gsm_sdcch8_demapper.py
new file mode 100644
index 0000000..e69d277
--- /dev/null
+++ b/python/demapping/gsm_sdcch8_demapper.py
@@ -0,0 +1,46 @@
+# -*- coding: utf-8 -*-
+##################################################
+# GNU Radio Python Flow Graph
+# Title: SDCCH/8 demapper
+# Author: Piotr Krysik
+# Description: Demapper for SDCCH/8 + SACCH/C8 control channels. This corresponds to channel combination vii specified in GSM 05.02, section 6.4
+# Generated: Fri May 20 12:12:04 2016
+##################################################
+
+from gnuradio import gr
+from gnuradio.filter import firdes
+import grgsm
+
+
+class gsm_sdcch8_demapper(grgsm.hier_block):
+
+    def __init__(self, timeslot_nr=1):
+        grgsm.hier_block.__init__(
+            self, "SDCCH/8 demapper",
+            gr.io_signature(0, 0, 0),
+            gr.io_signature(0, 0, 0),
+        )
+        self.message_port_register_hier_in("bursts")
+        self.message_port_register_hier_out("bursts")
+
+        ##################################################
+        # Parameters
+        ##################################################
+        self.timeslot_nr = timeslot_nr
+
+        ##################################################
+        # Blocks
+        ##################################################
+        self.gsm_universal_ctrl_chans_demapper_0 = grgsm.universal_ctrl_chans_demapper(timeslot_nr, ([0,0,0,0,4,4,4,4,8,8,8,8,12,12,12,12,16,16,16,16,20,20,20,20,24,24,24,24,28,28,28,28,32,32,32,32,36,36,36,36,40,40,40,40,44,44,44,44,0,0,0]), ([0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,0,0,0]), ([0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,0,0,0,]), ([136,136,136,136,136,136,136,136,136,136,136,136,0,0,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,136,136,136,136]), ([1,1,1,1,2,2,2,2,3,3,3,3,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,0,0,0,0,5,5,5,5,6,6,6,6,7,7,7,7,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,4,4,4,4]), ([1,1,1,1,2,2,2,2,3,3,3,3,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,0,0,0,0,5,5,5,5,6,6,6,6,7,7,7,7,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,4,4,4,4,]))
+
+        ##################################################
+        # Connections
+        ##################################################
+        self.msg_connect((self.gsm_universal_ctrl_chans_demapper_0, 'bursts'), (self, 'bursts'))    
+        self.msg_connect((self, 'bursts'), (self.gsm_universal_ctrl_chans_demapper_0, 'bursts'))    
+
+    def get_timeslot_nr(self):
+        return self.timeslot_nr
+
+    def set_timeslot_nr(self, timeslot_nr):
+        self.timeslot_nr = timeslot_nr
