diff --git a/.travis.yml b/.travis.yml
index 6c1b51b..034ede2 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,10 +3,11 @@
 language: ruby
 
 env:
-  #- DOCKERFILE=tests/dockerfiles/Debian_Jessie.docker IMGNAME=debjess-grgsm
-  #- DOCKERFILE=tests/dockerfiles/Ubuntu_15_04.docker IMGNAME=ubu15.04-grgsm
-  #- DOCKERFILE=tests/dockerfiles/Debian_testing.docker IMGNAME=debtest-grgsm
+  - DOCKERFILE=tests/dockerfiles/Debian_testing.docker IMGNAME=debtest-grgsm
+  - DOCKERFILE=tests/dockerfiles/Debian_testing_package.docker IMGNAME=debtest-grgsm-package
   - DOCKERFILE=tests/dockerfiles/Ubuntu_16_04.docker IMGNAME=ubu16.04-grgsm
+  - DOCKERFILE=tests/dockerfiles/Kali.docker IMGNAME=kali-grgsm
+
 
 services:
   - docker
@@ -15,5 +16,5 @@
   - cat $DOCKERFILE > Dockerfile ; docker build -t $IMGNAME .
 
 script:
-  - docker run -it --rm $IMGNAME sh -c 'cd /src/build;make test'
+#  - docker run -it --rm $IMGNAME sh -c 'cd /src/build;make test'
   - docker run -it --rm $IMGNAME /src/tests/scripts/decode.sh
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7e56092..811cd93 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -61,7 +61,7 @@
 # Set the version information here
 set(VERSION_INFO_MAJOR_VERSION 0)
 set(VERSION_INFO_API_COMPAT    41)
-set(VERSION_INFO_MINOR_VERSION 2)
+set(VERSION_INFO_MINOR_VERSION 3)
 set(VERSION_INFO_MAINT_VERSION 0)
 include(GrVersion) #setup version info
 
diff --git a/apps/grgsm_livemon b/apps/grgsm_livemon
index 1ec5ecb..3e818c5 100755
--- a/apps/grgsm_livemon
+++ b/apps/grgsm_livemon
@@ -25,7 +25,7 @@
 # Title: Gr-gsm Livemon
 # Author: Piotr Krysik
 # Description: Interactive monitor of a single C0 channel with analysis performed by Wireshark (command to run wireshark: sudo wireshark -k -f udp -Y gsmtap -i lo)
-# Generated: Sun Aug 27 08:34:42 2017
+# Generated: Tue Jan 23 14:59:18 2018
 ##################################################
 
 if __name__ == '__main__':
@@ -54,14 +54,16 @@
 import sip
 import sys
 import time
+from gnuradio import qtgui
 
 
 class grgsm_livemon(gr.top_block, Qt.QWidget):
 
-    def __init__(self, args="", collector="localhost", collectorport="4729", fc=941.8e6, gain=30, osr=4, ppm=0, samp_rate=2000000.052982, serverport="4729", shiftoff=400e3):
+    def __init__(self, args="", collector='localhost', collectorport='4729', fc=941.8e6, gain=30, osr=4, ppm=0, samp_rate=2000000.052982, serverport='4729', shiftoff=400e3):
         gr.top_block.__init__(self, "Gr-gsm Livemon")
         Qt.QWidget.__init__(self)
         self.setWindowTitle("Gr-gsm Livemon")
+        qtgui.util.check_set_qss()
         try:
             self.setWindowIcon(Qt.QIcon.fromTheme('gnuradio-grc'))
         except:
@@ -81,6 +83,7 @@
         self.settings = Qt.QSettings("GNU Radio", "grgsm_livemon")
         self.restoreGeometry(self.settings.value("geometry").toByteArray())
 
+
         ##################################################
         # Parameters
         ##################################################
@@ -99,20 +102,20 @@
         # Variables
         ##################################################
         self.ppm_slider = ppm_slider = ppm
-        self.g_slider = g_slider = gain
+        self.gain_slider = gain_slider = gain
         self.fc_slider = fc_slider = fc
 
         ##################################################
         # Blocks
         ##################################################
         self._ppm_slider_range = Range(-150, 150, 0.1, ppm, 100)
-        self._ppm_slider_win = RangeWidget(self._ppm_slider_range, self.set_ppm_slider, "PPM Offset", "counter", float)
+        self._ppm_slider_win = RangeWidget(self._ppm_slider_range, self.set_ppm_slider, 'PPM Offset', "counter", float)
         self.top_layout.addWidget(self._ppm_slider_win)
-        self._g_slider_range = Range(0, 50, 0.5, gain, 100)
-        self._g_slider_win = RangeWidget(self._g_slider_range, self.set_g_slider, "Gain", "counter", float)
-        self.top_layout.addWidget(self._g_slider_win)
+        self._gain_slider_range = Range(0, 100, 0.5, gain, 100)
+        self._gain_slider_win = RangeWidget(self._gain_slider_range, self.set_gain_slider, 'Gain', "counter", float)
+        self.top_layout.addWidget(self._gain_slider_win)
         self._fc_slider_range = Range(800e6, 1990e6, 2e5, fc, 100)
-        self._fc_slider_win = RangeWidget(self._fc_slider_range, self.set_fc_slider, "Frequency", "counter_slider", float)
+        self._fc_slider_win = RangeWidget(self._fc_slider_range, self.set_fc_slider, 'Frequency', "counter_slider", float)
         self.top_layout.addWidget(self._fc_slider_win)
         self.rtlsdr_source_0 = osmosdr.source( args="numchan=" + str(1) + " " + args )
         self.rtlsdr_source_0.set_sample_rate(samp_rate)
@@ -121,12 +124,12 @@
         self.rtlsdr_source_0.set_dc_offset_mode(2, 0)
         self.rtlsdr_source_0.set_iq_balance_mode(2, 0)
         self.rtlsdr_source_0.set_gain_mode(False, 0)
-        self.rtlsdr_source_0.set_gain(g_slider, 0)
+        self.rtlsdr_source_0.set_gain(gain_slider, 0)
         self.rtlsdr_source_0.set_if_gain(20, 0)
         self.rtlsdr_source_0.set_bb_gain(20, 0)
-        self.rtlsdr_source_0.set_antenna("", 0)
+        self.rtlsdr_source_0.set_antenna('', 0)
         self.rtlsdr_source_0.set_bandwidth(250e3+abs(shiftoff), 0)
-          
+
         self.qtgui_freq_sink_x_0 = qtgui.freq_sink_c(
         	1024, #size
         	firdes.WIN_BLACKMAN_hARRIS, #wintype
@@ -137,20 +140,22 @@
         )
         self.qtgui_freq_sink_x_0.set_update_time(0.10)
         self.qtgui_freq_sink_x_0.set_y_axis(-140, 10)
+        self.qtgui_freq_sink_x_0.set_y_label('Relative Gain', 'dB')
         self.qtgui_freq_sink_x_0.set_trigger_mode(qtgui.TRIG_MODE_FREE, 0.0, 0, "")
         self.qtgui_freq_sink_x_0.enable_autoscale(False)
         self.qtgui_freq_sink_x_0.enable_grid(False)
         self.qtgui_freq_sink_x_0.set_fft_average(1.0)
+        self.qtgui_freq_sink_x_0.enable_axis_labels(True)
         self.qtgui_freq_sink_x_0.enable_control_panel(False)
-        
+
         if not True:
           self.qtgui_freq_sink_x_0.disable_legend()
-        
+
         if "complex" == "float" or "complex" == "msg_float":
           self.qtgui_freq_sink_x_0.set_plot_pos_half(not True)
-        
-        labels = ["", "", "", "", "",
-                  "", "", "", "", ""]
+
+        labels = ['', '', '', '', '',
+                  '', '', '', '', '']
         widths = [1, 1, 1, 1, 1,
                   1, 1, 1, 1, 1]
         colors = ["blue", "red", "green", "black", "cyan",
@@ -165,7 +170,7 @@
             self.qtgui_freq_sink_x_0.set_line_width(i, widths[i])
             self.qtgui_freq_sink_x_0.set_line_color(i, colors[i])
             self.qtgui_freq_sink_x_0.set_line_alpha(i, alphas[i])
-        
+
         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.gsm_sdcch8_demapper(
@@ -177,44 +182,45 @@
         self.gsm_input_0 = grgsm.gsm_input(
             ppm=ppm-int(ppm),
             osr=4,
-            fc=fc,
+            fc=fc_slider-shiftoff,
             samp_rate_in=samp_rate,
         )
         self.gsm_decryption_0 = grgsm.decryption(([]), 1)
         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, samp_rate, osr)
+        self.gsm_clock_offset_control_0 = grgsm.clock_offset_control(fc_slider-shiftoff, samp_rate, osr)
         self.gsm_bcch_ccch_demapper_0 = grgsm.gsm_bcch_ccch_demapper(
             timeslot_nr=0,
         )
         self.blocks_socket_pdu_0_1 = blocks.socket_pdu("UDP_CLIENT", collector, collectorport, 1500, False)
-        self.blocks_socket_pdu_0_0 = blocks.socket_pdu("UDP_SERVER", "127.0.0.1", serverport, 10000, False)
+        self.blocks_socket_pdu_0_0 = blocks.socket_pdu("UDP_SERVER", '127.0.0.1', serverport, 10000, False)
         self.blocks_rotator_cc_0 = blocks.rotator_cc(-2*pi*shiftoff/samp_rate)
 
+
+
         ##################################################
         # Connections
         ##################################################
-        self.msg_connect((self.blocks_socket_pdu_0_0, 'pdus'), (self.gsm_message_printer_1, 'msgs'))    
-        self.msg_connect((self.gsm_bcch_ccch_demapper_0, 'bursts'), (self.gsm_control_channels_decoder_0, 'bursts'))    
-        self.msg_connect((self.gsm_clock_offset_control_0, 'ctrl'), (self.gsm_input_0, 'ctrl_in'))    
-        self.msg_connect((self.gsm_control_channels_decoder_0, 'msgs'), (self.blocks_socket_pdu_0_1, 'pdus'))    
-        self.msg_connect((self.gsm_control_channels_decoder_0_0, 'msgs'), (self.blocks_socket_pdu_0_1, 'pdus'))    
-        self.msg_connect((self.gsm_decryption_0, 'bursts'), (self.gsm_control_channels_decoder_0_0, 'bursts'))    
-        self.msg_connect((self.gsm_receiver_0, 'C0'), (self.gsm_bcch_ccch_demapper_0, 'bursts'))    
-        self.msg_connect((self.gsm_receiver_0, 'measurements'), (self.gsm_clock_offset_control_0, 'measurements'))    
-        self.msg_connect((self.gsm_receiver_0, 'C0'), (self.gsm_sdcch8_demapper_0, 'bursts'))    
-        self.msg_connect((self.gsm_sdcch8_demapper_0, 'bursts'), (self.gsm_decryption_0, 'bursts'))    
-        self.connect((self.blocks_rotator_cc_0, 0), (self.gsm_input_0, 0))    
-        self.connect((self.blocks_rotator_cc_0, 0), (self.qtgui_freq_sink_x_0, 0))    
-        self.connect((self.gsm_input_0, 0), (self.gsm_receiver_0, 0))    
-        self.connect((self.rtlsdr_source_0, 0), (self.blocks_rotator_cc_0, 0))    
+        self.msg_connect((self.blocks_socket_pdu_0_0, 'pdus'), (self.gsm_message_printer_1, 'msgs'))
+        self.msg_connect((self.gsm_bcch_ccch_demapper_0, 'bursts'), (self.gsm_control_channels_decoder_0, 'bursts'))
+        self.msg_connect((self.gsm_clock_offset_control_0, 'ctrl'), (self.gsm_input_0, 'ctrl_in'))
+        self.msg_connect((self.gsm_control_channels_decoder_0, 'msgs'), (self.blocks_socket_pdu_0_1, 'pdus'))
+        self.msg_connect((self.gsm_control_channels_decoder_0_0, 'msgs'), (self.blocks_socket_pdu_0_1, 'pdus'))
+        self.msg_connect((self.gsm_decryption_0, 'bursts'), (self.gsm_control_channels_decoder_0_0, 'bursts'))
+        self.msg_connect((self.gsm_receiver_0, 'C0'), (self.gsm_bcch_ccch_demapper_0, 'bursts'))
+        self.msg_connect((self.gsm_receiver_0, 'measurements'), (self.gsm_clock_offset_control_0, 'measurements'))
+        self.msg_connect((self.gsm_receiver_0, 'C0'), (self.gsm_sdcch8_demapper_0, 'bursts'))
+        self.msg_connect((self.gsm_sdcch8_demapper_0, 'bursts'), (self.gsm_decryption_0, 'bursts'))
+        self.connect((self.blocks_rotator_cc_0, 0), (self.gsm_input_0, 0))
+        self.connect((self.blocks_rotator_cc_0, 0), (self.qtgui_freq_sink_x_0, 0))
+        self.connect((self.gsm_input_0, 0), (self.gsm_receiver_0, 0))
+        self.connect((self.rtlsdr_source_0, 0), (self.blocks_rotator_cc_0, 0))
 
     def closeEvent(self, event):
         self.settings = Qt.QSettings("GNU Radio", "grgsm_livemon")
         self.settings.setValue("geometry", self.saveGeometry())
         event.accept()
 
-
     def get_args(self):
         return self.args
 
@@ -239,14 +245,13 @@
     def set_fc(self, fc):
         self.fc = fc
         self.set_fc_slider(self.fc)
-        self.gsm_input_0.set_fc(self.fc)
 
     def get_gain(self):
         return self.gain
 
     def set_gain(self, gain):
         self.gain = gain
-        self.set_g_slider(self.gain)
+        self.set_gain_slider(self.gain)
 
     def get_osr(self):
         return self.osr
@@ -267,10 +272,10 @@
 
     def set_samp_rate(self, samp_rate):
         self.samp_rate = samp_rate
-        self.blocks_rotator_cc_0.set_phase_inc(-2*pi*self.shiftoff/self.samp_rate)
-        self.gsm_input_0.set_samp_rate_in(self.samp_rate)
-        self.qtgui_freq_sink_x_0.set_frequency_range(self.fc_slider, self.samp_rate)
         self.rtlsdr_source_0.set_sample_rate(self.samp_rate)
+        self.qtgui_freq_sink_x_0.set_frequency_range(self.fc_slider, self.samp_rate)
+        self.gsm_input_0.set_samp_rate_in(self.samp_rate)
+        self.blocks_rotator_cc_0.set_phase_inc(-2*pi*self.shiftoff/self.samp_rate)
 
     def get_serverport(self):
         return self.serverport
@@ -283,9 +288,11 @@
 
     def set_shiftoff(self, shiftoff):
         self.shiftoff = shiftoff
-        self.blocks_rotator_cc_0.set_phase_inc(-2*pi*self.shiftoff/self.samp_rate)
         self.rtlsdr_source_0.set_center_freq(self.fc_slider-self.shiftoff, 0)
         self.rtlsdr_source_0.set_bandwidth(250e3+abs(self.shiftoff), 0)
+        self.gsm_input_0.set_fc(self.fc_slider-self.shiftoff)
+        self.gsm_clock_offset_control_0.set_fc(self.fc_slider-self.shiftoff)
+        self.blocks_rotator_cc_0.set_phase_inc(-2*pi*self.shiftoff/self.samp_rate)
 
     def get_ppm_slider(self):
         return self.ppm_slider
@@ -294,32 +301,35 @@
         self.ppm_slider = ppm_slider
         self.rtlsdr_source_0.set_freq_corr(self.ppm_slider, 0)
 
-    def get_g_slider(self):
-        return self.g_slider
+    def get_gain_slider(self):
+        return self.gain_slider
 
-    def set_g_slider(self, g_slider):
-        self.g_slider = g_slider
-        self.rtlsdr_source_0.set_gain(self.g_slider, 0)
+    def set_gain_slider(self, gain_slider):
+        self.gain_slider = gain_slider
+        self.rtlsdr_source_0.set_gain(self.gain_slider, 0)
 
     def get_fc_slider(self):
         return self.fc_slider
 
     def set_fc_slider(self, fc_slider):
         self.fc_slider = fc_slider
-        self.qtgui_freq_sink_x_0.set_frequency_range(self.fc_slider, self.samp_rate)
         self.rtlsdr_source_0.set_center_freq(self.fc_slider-self.shiftoff, 0)
+        self.qtgui_freq_sink_x_0.set_frequency_range(self.fc_slider, self.samp_rate)
+        self.gsm_input_0.set_fc(self.fc_slider-self.shiftoff)
+        self.gsm_clock_offset_control_0.set_fc(self.fc_slider-self.shiftoff)
 
 
 def argument_parser():
-    parser = OptionParser(option_class=eng_option, usage="%prog: [options]")
+    description = 'Interactive monitor of a single C0 channel with analysis performed by Wireshark (command to run wireshark: sudo wireshark -k -f udp -Y gsmtap -i lo)'
+    parser = OptionParser(usage="%prog: [options]", option_class=eng_option, description=description)
     parser.add_option(
         "", "--args", dest="args", type="string", default="",
         help="Set Device Arguments [default=%default]")
     parser.add_option(
-        "", "--collector", dest="collector", type="string", default="localhost",
+        "", "--collector", dest="collector", type="string", default='localhost',
         help="Set IP or DNS name of collector point [default=%default]")
     parser.add_option(
-        "", "--collectorport", dest="collectorport", type="string", default="4729",
+        "", "--collectorport", dest="collectorport", type="string", default='4729',
         help="Set UDP port number of collector [default=%default]")
     parser.add_option(
         "-f", "--fc", dest="fc", type="eng_float", default=eng_notation.num_to_str(941.8e6),
@@ -337,7 +347,7 @@
         "-s", "--samp-rate", dest="samp_rate", type="eng_float", default=eng_notation.num_to_str(2000000.052982),
         help="Set samp_rate [default=%default]")
     parser.add_option(
-        "", "--serverport", dest="serverport", type="string", default="4729",
+        "", "--serverport", dest="serverport", type="string", default='4729',
         help="Set UDP server listening port [default=%default]")
     parser.add_option(
         "-o", "--shiftoff", dest="shiftoff", type="eng_float", default=eng_notation.num_to_str(400e3),
diff --git a/apps/grgsm_livemon.grc b/apps/grgsm_livemon.grc
index 1b80a19..3d2236d 100644
--- a/apps/grgsm_livemon.grc
+++ b/apps/grgsm_livemon.grc
@@ -1,5 +1,5 @@
 <?xml version='1.0' encoding='utf-8'?>
-<?grc format='1' created='3.7.9'?>
+<?grc format='1' created='3.7.12'?>
 <flow_graph>
   <timestamp>Sat Dec 13 10:49:59 2014</timestamp>
   <block>
@@ -73,6 +73,10 @@
       <value>True</value>
     </param>
     <param>
+      <key>sizing_mode</key>
+      <value>fixed</value>
+    </param>
+    <param>
       <key>thread_safe_setters</key>
       <value></value>
     </param>
@@ -80,6 +84,10 @@
       <key>title</key>
       <value>Gr-gsm Livemon</value>
     </param>
+    <param>
+      <key>placement</key>
+      <value>(0,0)</value>
+    </param>
   </block>
   <block>
     <key>variable_qtgui_range</key>
@@ -196,7 +204,7 @@
     </param>
     <param>
       <key>stop</key>
-      <value>50</value>
+      <value>100</value>
     </param>
     <param>
       <key>rangeType</key>
@@ -305,6 +313,10 @@
       <value></value>
     </param>
     <param>
+      <key>hide</key>
+      <value>none</value>
+    </param>
+    <param>
       <key>type</key>
       <value>string</value>
     </param>
@@ -509,6 +521,10 @@
       <value></value>
     </param>
     <param>
+      <key>hide</key>
+      <value>none</value>
+    </param>
+    <param>
       <key>type</key>
       <value>string</value>
     </param>
@@ -552,6 +568,10 @@
       <value></value>
     </param>
     <param>
+      <key>hide</key>
+      <value>none</value>
+    </param>
+    <param>
       <key>type</key>
       <value>string</value>
     </param>
@@ -595,6 +615,10 @@
       <value>f</value>
     </param>
     <param>
+      <key>hide</key>
+      <value>none</value>
+    </param>
+    <param>
       <key>type</key>
       <value>eng_float</value>
     </param>
@@ -638,6 +662,10 @@
       <value>g</value>
     </param>
     <param>
+      <key>hide</key>
+      <value>none</value>
+    </param>
+    <param>
       <key>type</key>
       <value>eng_float</value>
     </param>
@@ -733,7 +761,7 @@
     </param>
     <param>
       <key>fc</key>
-      <value>fc-shiftoff</value>
+      <value>fc_slider-shiftoff</value>
     </param>
     <param>
       <key>samp_rate</key>
@@ -909,7 +937,7 @@
     </param>
     <param>
       <key>fc</key>
-      <value>fc</value>
+      <value>fc_slider-shiftoff</value>
     </param>
     <param>
       <key>ppm</key>
@@ -975,7 +1003,7 @@
     </param>
     <param>
       <key>cell_allocation</key>
-      <value>[0]</value>
+      <value>[arfcn.downlink2arfcn(fc)]</value>
     </param>
     <param>
       <key>comment</key>
@@ -1097,6 +1125,37 @@
     </param>
   </block>
   <block>
+    <key>import</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>(1016, 60)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>import_1</value>
+    </param>
+    <param>
+      <key>import</key>
+      <value>from grgsm import arfcn</value>
+    </param>
+  </block>
+  <block>
     <key>parameter</key>
     <param>
       <key>alias</key>
@@ -1131,6 +1190,10 @@
       <value></value>
     </param>
     <param>
+      <key>hide</key>
+      <value>none</value>
+    </param>
+    <param>
       <key>type</key>
       <value>intx</value>
     </param>
@@ -1174,6 +1237,10 @@
       <value>p</value>
     </param>
     <param>
+      <key>hide</key>
+      <value>none</value>
+    </param>
+    <param>
       <key>type</key>
       <value>eng_float</value>
     </param>
@@ -1193,6 +1260,10 @@
       <value>1.0</value>
     </param>
     <param>
+      <key>axislabels</key>
+      <value>True</value>
+    </param>
+    <param>
       <key>bw</key>
       <value>samp_rate</value>
     </param>
@@ -1461,6 +1532,10 @@
       <value>firdes.WIN_BLACKMAN_hARRIS</value>
     </param>
     <param>
+      <key>label</key>
+      <value>Relative Gain</value>
+    </param>
+    <param>
       <key>ymax</key>
       <value>10</value>
     </param>
@@ -1468,6 +1543,10 @@
       <key>ymin</key>
       <value>-140</value>
     </param>
+    <param>
+      <key>units</key>
+      <value>dB</value>
+    </param>
   </block>
   <block>
     <key>rtlsdr_source</key>
@@ -2911,6 +2990,10 @@
       <value>s</value>
     </param>
     <param>
+      <key>hide</key>
+      <value>none</value>
+    </param>
+    <param>
       <key>type</key>
       <value>eng_float</value>
     </param>
@@ -2954,6 +3037,10 @@
       <value></value>
     </param>
     <param>
+      <key>hide</key>
+      <value>none</value>
+    </param>
+    <param>
       <key>type</key>
       <value>string</value>
     </param>
@@ -2997,6 +3084,10 @@
       <value>o</value>
     </param>
     <param>
+      <key>hide</key>
+      <value>none</value>
+    </param>
+    <param>
       <key>type</key>
       <value>eng_float</value>
     </param>
diff --git a/apps/grgsm_livemon_headless b/apps/grgsm_livemon_headless
old mode 100644
new mode 100755
diff --git a/grc/receiver/gsm_clock_offset_control.xml b/grc/receiver/gsm_clock_offset_control.xml
index 17378ea..c5a932a 100644
--- a/grc/receiver/gsm_clock_offset_control.xml
+++ b/grc/receiver/gsm_clock_offset_control.xml
@@ -4,7 +4,7 @@
   <key>gsm_clock_offset_control</key>
   <import>import grgsm</import>
   <make>grgsm.clock_offset_control($fc, $samp_rate, $osr)</make>
-  <callback></callback>
+  <callback>set_fc($fc)</callback>
   <param>
     <name>fc</name>
     <key>fc</key>
diff --git a/include/grgsm/misc_utils/extract_cmc.h b/include/grgsm/misc_utils/extract_cmc.h
index 2b07bbe..82bd729 100644
--- a/include/grgsm/misc_utils/extract_cmc.h
+++ b/include/grgsm/misc_utils/extract_cmc.h
@@ -53,6 +53,7 @@
       virtual std::vector<int> get_framenumbers() = 0;
       virtual std::vector<int> get_a5_versions() = 0;
       virtual std::vector<int> get_start_ciphering() = 0;
+      virtual std::vector<int> get_assignment_commands() = 0;
     };
 
   } // namespace gsm
diff --git a/lib/misc_utils/extract_cmc_impl.cc b/lib/misc_utils/extract_cmc_impl.cc
index 16f2f6b..c28e49f 100644
--- a/lib/misc_utils/extract_cmc_impl.cc
+++ b/lib/misc_utils/extract_cmc_impl.cc
@@ -40,7 +40,7 @@
         gsmtap_hdr * header = (gsmtap_hdr *)message_plus_header;
         uint8_t * msg_elements = (uint8_t *)(message_plus_header+sizeof(gsmtap_hdr));
 
-        if((msg_elements[3] & 0xF) == 0x6 && msg_elements[4] == 0x35)
+        if((msg_elements[3] & 0xFF) == 0x06 && msg_elements[4] == 0x35)
         {
 
             int frame_nr = be32toh(header->frame_number);
@@ -50,6 +50,11 @@
             d_framenumbers.push_back(frame_nr);
             d_a5_versions.push_back(a5_version);
         }
+        if((msg_elements[3] & 0xFF) == 0x06 && msg_elements[4] == 0x2e)
+        {
+            int frame_nr = be32toh(header->frame_number);
+            d_assignment_commands.push_back(frame_nr);
+        }
     }
     
     std::vector<int> extract_cmc_impl::get_framenumbers()
@@ -67,6 +72,11 @@
         return d_start_ciphering;
     }
     
+    std::vector<int> extract_cmc_impl::get_assignment_commands()
+    {
+        return d_assignment_commands;
+    }
+    
     extract_cmc::sptr
     extract_cmc::make()
     {
diff --git a/lib/misc_utils/extract_cmc_impl.h b/lib/misc_utils/extract_cmc_impl.h
index b62cadc..1dd02cb 100644
--- a/lib/misc_utils/extract_cmc_impl.h
+++ b/lib/misc_utils/extract_cmc_impl.h
@@ -35,10 +35,12 @@
       std::vector<int> d_framenumbers;
       std::vector<int> d_a5_versions;
       std::vector<int> d_start_ciphering;
+      std::vector<int> d_assignment_commands;
      public:
       virtual std::vector<int> get_framenumbers();
       virtual std::vector<int> get_a5_versions();
       virtual std::vector<int> get_start_ciphering();
+      virtual std::vector<int> get_assignment_commands();
       extract_cmc_impl();
       ~extract_cmc_impl();
     };
diff --git a/tests/dockerfiles/Debian_Jessie.docker b/tests/dockerfiles/Debian_Jessie.docker
deleted file mode 100644
index 1252314..0000000
--- a/tests/dockerfiles/Debian_Jessie.docker
+++ /dev/null
@@ -1,34 +0,0 @@
-FROM debian:testing
-
-# We know it's going to foul up, so we run this install separately and then ...fix... dpkg status
-RUN apt-get update && apt-get install -y uhd-host || \
-     sed -i "s/Status: install ok half-configured/Status: install ok installed/g" /var/lib/dpkg/status
-
-RUN apt-get install -y \
-    git \
-    vim \
-    cmake \
-    autoconf \
-    libtool \
-    build-essential \
-    python-docutils \
-    libboost-all-dev \
-    libcppunit-dev swig \
-    doxygen \
-    liblog4cpp5-dev \
-    python-scipy \
-    gnuradio \
-    gnuradio-dev \
-    gr-osmosdr \
-    libosmogsm5
-
-COPY ./ /src/
-RUN ls /src
-
-RUN mkdir /src/build && \
-    cd /src/build && \
-    cmake .. && \
-    make && \
-    make test && \
-    make install && \
-    ldconfig
diff --git a/tests/dockerfiles/Debian_testing.docker b/tests/dockerfiles/Debian_testing.docker
index 26d67d6..9cdd389 100644
--- a/tests/dockerfiles/Debian_testing.docker
+++ b/tests/dockerfiles/Debian_testing.docker
@@ -1,5 +1,5 @@
 FROM debian:testing
-MAINTAINER Ash Wilson
+MAINTAINER Piotr Krysik
 
 RUN apt-get update && apt-get install -y \
     cmake \
@@ -24,4 +24,5 @@
 RUN cmake .. && \
     make && \
     make install && \
-    ldconfig
+    ldconfig && \
+    make test
diff --git a/tests/dockerfiles/Debian_testing_package.docker b/tests/dockerfiles/Debian_testing_package.docker
new file mode 100644
index 0000000..35d31cd
--- /dev/null
+++ b/tests/dockerfiles/Debian_testing_package.docker
@@ -0,0 +1,10 @@
+FROM debian:testing
+MAINTAINER Piotr Krysik
+
+RUN apt-get update && apt-get install -y \
+    gr-gsm
+
+COPY ./ /src/
+RUN ls /src
+
+
diff --git a/tests/dockerfiles/Ubuntu_16_04_debbuild.docker b/tests/dockerfiles/Kali.docker
similarity index 69%
rename from tests/dockerfiles/Ubuntu_16_04_debbuild.docker
rename to tests/dockerfiles/Kali.docker
index 030ece8..5442f33 100644
--- a/tests/dockerfiles/Ubuntu_16_04_debbuild.docker
+++ b/tests/dockerfiles/Kali.docker
@@ -1,11 +1,12 @@
-FROM ubuntu:16.04
-MAINTAINER Ash Wilson
+FROM kalilinux/kali-linux-docker
+MAINTAINER Piotr Krysik
 
 RUN apt-get update && apt-get install -y \
     cmake \
     autoconf \
     libtool \
     build-essential \
+    python-docutils \
     libcppunit-dev \
     swig \
     doxygen \
@@ -21,7 +22,7 @@
 RUN mkdir /src/build
 WORKDIR /src/build
 RUN cmake .. && \
-    make package && \
-    cpack -G DEB && \
-    ls
-
+    make && \
+    make install && \
+    ldconfig && \
+    make test
diff --git a/tests/dockerfiles/Ubuntu_15_04.docker b/tests/dockerfiles/Ubuntu_15_04.docker
deleted file mode 100644
index 973b624..0000000
--- a/tests/dockerfiles/Ubuntu_15_04.docker
+++ /dev/null
@@ -1,80 +0,0 @@
-FROM ubuntu:15.04
-MAINTAINER Ash Wilson
-
-ENV OSMOSDR_GIT="git://git.osmocom.org/libosmocore.git"
-ENV OSMOCORE_TAG=0.6.3
-
-# We know it's going to foul up, so we run this install separately and then ...fix... dpkg status
-RUN apt-get update && apt-get install -y uhd-host || \
-     sed -i "s/Status: install ok half-configured/Status: install ok installed/g" /var/lib/dpkg/status
-
-
-RUN apt-get update && apt-get install -y \
-    git \
-    python \
-    python-scipy \
-    cmake \
-    make \
-    autoconf \
-    automake \
-    cpp-4.9 \
-    gcc \
-    g++ \
-    libstdc++-4.9-dev \
-    libcppunit-dev \
-    swig \
-    swig2.0 \
-    doxygen \
-    liblog4cpp5 \
-    liblog4cpp5-dev \
-    build-essential \
-    python-docutils \
-    libtool \
-    shtool \
-    pkg-config \
-    libpcsclite-dev \
-    gnuradio \
-    gnuradio-dev \
-    gr-osmosdr \
-    libfftw3-dev \
-    libusb-1.0-0-dev \
-    libvolk-dev \
-    libvolk0.0.0 \
-    libboost-all-dev \
-    libgnuradio-osmosdr0.1.3 \
-    libmirisdr0 \
-    libosmosdr-dev \
-    libosmosdr0 \
-    librtlsdr-dev \
-    librtlsdr0 \
-    osmo-sdr \
-    rtl-sdr \
-    wget \
-    python-talloc-dev \
-    libtalloc2 \
-    libtalloc-dev \
-    unzip
-
-# Build libosmosdr
-RUN git clone $OSMOSDR_GIT
-WORKDIR libosmocore
-RUN git checkout tags/$OSMOCORE_TAG && \
-    autoreconf -i && \
-    ./configure && \
-    make && \
-    make install && \
-    ldconfig -i
-
-COPY ./ /src/
-
-RUN mkdir /root/.gnuradio/
-RUN echo "[grc]\nlocal_blocks_path=/usr/local/share/gnuradio/grc/blocks" > \
-    /root/.gnuradio/config.conf
-
-RUN mkdir /src/build
-WORKDIR /src/build
-RUN cmake .. && \
-    make && \
-    make test && \
-    make install && \
-    ldconfig
diff --git a/tests/dockerfiles/Ubuntu_16_04.docker b/tests/dockerfiles/Ubuntu_16_04.docker
index e0ccbea..e56b87f 100644
--- a/tests/dockerfiles/Ubuntu_16_04.docker
+++ b/tests/dockerfiles/Ubuntu_16_04.docker
@@ -1,5 +1,5 @@
 FROM ubuntu:16.04
-MAINTAINER Ash Wilson
+MAINTAINER Piotr Krysik
 
 RUN apt-get update && apt-get install -y \
     cmake \
@@ -24,4 +24,5 @@
 RUN cmake .. && \
     make && \
     make install && \
-    ldconfig
+    ldconfig && \
+    make test
diff --git a/tests/dockerfiles/Ubuntu_16_04_debinstall.docker b/tests/dockerfiles/Ubuntu_16_04_debinstall.docker
deleted file mode 100644
index 0a476ce..0000000
--- a/tests/dockerfiles/Ubuntu_16_04_debinstall.docker
+++ /dev/null
@@ -1,13 +0,0 @@
-FROM ubuntu:16.04
-MAINTAINER Ash Wilson
-
-RUN apt-get update && apt-get install -y \
-    software-properties-common
-
-RUN add-apt-repository -y ppa:ptrkrysik/gr-gsm
-
-RUN apt-get update && apt-get install -y \
-    gr-gsm
-
-COPY ./ /src/
-RUN ls /src
