Changed directory structure.
Corrected clock_offset_corrector (for some streange and yet unknown reason fractional resampler eats strem tags for some values of sps).
(this commit may contain some changes that are not described)
diff --git a/examples/gsm_fcch_detector.grc b/examples/gsm_fcch_detector.grc
deleted file mode 100644
index 1d69b53..0000000
--- a/examples/gsm_fcch_detector.grc
+++ /dev/null
@@ -1,567 +0,0 @@
-<?xml version='1.0' encoding='ASCII'?>
-<flow_graph>
-  <timestamp>Tue Jul  8 19:32:53 2014</timestamp>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>samp_rate</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>f_symb*OSR</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(10, 170)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable</key>
-    <param>
-      <key>id</key>
-      <value>f_symb</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>1625000.0/6.0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(11, 239)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>parameter</key>
-    <param>
-      <key>id</key>
-      <value>OSR</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>label</key>
-      <value>OverSamplingRatio</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>4</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>intx</value>
-    </param>
-    <param>
-      <key>short_id</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(264, 4)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>blocks_complex_to_arg</key>
-    <param>
-      <key>id</key>
-      <value>blocks_complex_to_arg_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(641, 158)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>blocks_multiply_conjugate_cc</key>
-    <param>
-      <key>id</key>
-      <value>blocks_multiply_conjugate_cc_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(444, 141)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>blocks_delay</key>
-    <param>
-      <key>id</key>
-      <value>blocks_delay_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>complex</value>
-    </param>
-    <param>
-      <key>delay</key>
-      <value>int(OSR)</value>
-    </param>
-    <param>
-      <key>num_ports</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(319, 171)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>blocks_moving_average_xx</key>
-    <param>
-      <key>id</key>
-      <value>blocks_moving_average_xx_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>float</value>
-    </param>
-    <param>
-      <key>length</key>
-      <value>int((142)*samp_rate/f_symb)</value>
-    </param>
-    <param>
-      <key>scale</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>max_iter</key>
-      <value>int(1e6)</value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(971, 138)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>blocks_threshold_ff</key>
-    <param>
-      <key>id</key>
-      <value>blocks_threshold_ff_0_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>low</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>high</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>init</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(815, 138)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>pad_source</key>
-    <param>
-      <key>id</key>
-      <value>pad_source_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>label</key>
-      <value>in</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>complex</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>num_streams</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>optional</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(155, 137)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>blocks_threshold_ff</key>
-    <param>
-      <key>id</key>
-      <value>blocks_threshold_ff_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>low</key>
-      <value>int((138)*samp_rate/f_symb)</value>
-    </param>
-    <param>
-      <key>high</key>
-      <value>int((138)*samp_rate/f_symb)</value>
-    </param>
-    <param>
-      <key>init</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(1150, 138)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>gsm_fcch_burst_tagger</key>
-    <param>
-      <key>id</key>
-      <value>gsm_fcch_burst_tagger_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>OSR</key>
-      <value>OSR</value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(348, 303)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>pad_sink</key>
-    <param>
-      <key>id</key>
-      <value>pad_sink_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>label</key>
-      <value>out</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>complex</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>num_streams</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>optional</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(584, 316)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>options</key>
-    <param>
-      <key>id</key>
-      <value>fcch_detector</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>title</key>
-      <value>FCCH Bursts Detector</value>
-    </param>
-    <param>
-      <key>author</key>
-      <value>Piotr Krysik</value>
-    </param>
-    <param>
-      <key>description</key>
-      <value>Detects positions of FCCH bursts. At the end of each detected FCCH burst adds to the stream a tag with key "fcch" and value which is a frequency offset estimate. The input sampling frequency should be integer multiply of GSM GMKS symbol rate - 1625000/6 Hz.</value>
-    </param>
-    <param>
-      <key>window_size</key>
-      <value>1280, 1024</value>
-    </param>
-    <param>
-      <key>generate_options</key>
-      <value>hb</value>
-    </param>
-    <param>
-      <key>category</key>
-      <value>GSM</value>
-    </param>
-    <param>
-      <key>run_options</key>
-      <value>prompt</value>
-    </param>
-    <param>
-      <key>run</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>max_nouts</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>realtime_scheduling</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(8, 0)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <connection>
-    <source_block_id>pad_source_0</source_block_id>
-    <sink_block_id>blocks_multiply_conjugate_cc_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>blocks_delay_0</source_block_id>
-    <sink_block_id>blocks_multiply_conjugate_cc_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>1</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>blocks_complex_to_arg_0</source_block_id>
-    <sink_block_id>blocks_threshold_ff_0_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>pad_source_0</source_block_id>
-    <sink_block_id>blocks_delay_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>blocks_multiply_conjugate_cc_0</source_block_id>
-    <sink_block_id>blocks_complex_to_arg_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>blocks_moving_average_xx_0</source_block_id>
-    <sink_block_id>blocks_threshold_ff_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>blocks_threshold_ff_0_0</source_block_id>
-    <sink_block_id>blocks_moving_average_xx_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>gsm_fcch_burst_tagger_0</source_block_id>
-    <sink_block_id>pad_sink_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>pad_source_0</source_block_id>
-    <sink_block_id>gsm_fcch_burst_tagger_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>blocks_threshold_ff_0</source_block_id>
-    <sink_block_id>gsm_fcch_burst_tagger_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>1</sink_key>
-  </connection>
-</flow_graph>
diff --git a/examples/receiver_file.grc b/examples/receiver_file.grc
index 507d3e5..8292b96 100644
--- a/examples/receiver_file.grc
+++ b/examples/receiver_file.grc
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='ASCII'?>
 <flow_graph>
-  <timestamp>Thu Aug  7 10:53:22 2014</timestamp>
+  <timestamp>Wed Aug 13 19:03:06 2014</timestamp>
   <block>
     <key>options</key>
     <param>
@@ -143,6 +143,248 @@
     </param>
   </block>
   <block>
+    <key>gsm_clock_offset_control</key>
+    <param>
+      <key>id</key>
+      <value>gsm_clock_offset_control_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>fc</key>
+      <value>fc</value>
+    </param>
+    <param>
+      <key>samp_rate</key>
+      <value>samp_rate</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(330, 261)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>180</value>
+    </param>
+  </block>
+  <block>
+    <key>clock_offset_corrector</key>
+    <param>
+      <key>id</key>
+      <value>clock_offset_corrector_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>fc</key>
+      <value>fc</value>
+    </param>
+    <param>
+      <key>ppm</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>samp_rate_in</key>
+      <value>1625000.0/6.0*4.0</value>
+    </param>
+    <param>
+      <key>samp_rate_out</key>
+      <value>1625000.0/6.0*4.0</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(253, 355)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>gsm_message_printer</key>
+    <param>
+      <key>id</key>
+      <value>gsm_message_printer_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(1135, 366)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>gsm_get_bcch_or_ccch_bursts</key>
+    <param>
+      <key>id</key>
+      <value>gsm_get_bcch_or_ccch_bursts_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>d_fn51_start</key>
+      <value>2</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(668, 362)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>gsm_control_channels_decoder</key>
+    <param>
+      <key>id</key>
+      <value>gsm_control_channels_decoder_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(913, 366)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>gsm_receiver_hier</key>
+    <param>
+      <key>id</key>
+      <value>gsm_receiver_hier_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>input_rate</key>
+      <value>samp_rate</value>
+    </param>
+    <param>
+      <key>osr</key>
+      <value>4</value>
+    </param>
+    <param>
+      <key>arfcn</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(465, 363)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
     <key>parameter</key>
     <param>
       <key>id</key>
@@ -174,54 +416,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(194, 11)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>clock_offset_corrector</key>
-    <param>
-      <key>id</key>
-      <value>clock_offset_corrector_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>ppm</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>samp_rate</key>
-      <value>samp_rate</value>
-    </param>
-    <param>
-      <key>fc</key>
-      <value>fc</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(253, 355)</value>
+      <value>(193, 11)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -272,204 +467,13 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(39, 346)</value>
+      <value>(23, 354)</value>
     </param>
     <param>
       <key>_rotation</key>
       <value>0</value>
     </param>
   </block>
-  <block>
-    <key>gsm_control_channels_decoder</key>
-    <param>
-      <key>id</key>
-      <value>gsm_control_channels_decoder_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(897, 358)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>gsm_get_bcch_or_ccch_bursts</key>
-    <param>
-      <key>id</key>
-      <value>gsm_get_bcch_or_ccch_bursts_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>d_fn51_start</key>
-      <value>2</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(652, 354)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>gsm_receiver_hier</key>
-    <param>
-      <key>id</key>
-      <value>gsm_receiver_hier_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>input_rate</key>
-      <value>samp_rate</value>
-    </param>
-    <param>
-      <key>osr</key>
-      <value>4</value>
-    </param>
-    <param>
-      <key>arfcn</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(449, 355)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>gsm_message_printer</key>
-    <param>
-      <key>id</key>
-      <value>gsm_message_printer_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(1119, 358)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>gsm_clock_offset_control</key>
-    <param>
-      <key>id</key>
-      <value>gsm_clock_offset_control_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>fc</key>
-      <value>fc</value>
-    </param>
-    <param>
-      <key>samp_rate</key>
-      <value>samp_rate</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(333, 261)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>180</value>
-    </param>
-  </block>
   <connection>
     <source_block_id>clock_offset_corrector_0</source_block_id>
     <sink_block_id>gsm_receiver_hier_0</sink_block_id>
@@ -477,28 +481,22 @@
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>gsm_clock_offset_control_0</source_block_id>
-    <sink_block_id>clock_offset_corrector_0</sink_block_id>
-    <source_key>ppm</source_key>
-    <sink_key>ppm</sink_key>
-  </connection>
-  <connection>
     <source_block_id>blocks_file_source_0</source_block_id>
     <sink_block_id>clock_offset_corrector_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>gsm_receiver_hier_0</source_block_id>
-    <sink_block_id>gsm_get_bcch_or_ccch_bursts_0</sink_block_id>
-    <source_key>bursts</source_key>
-    <sink_key>bursts</sink_key>
+    <source_block_id>gsm_clock_offset_control_0</source_block_id>
+    <sink_block_id>clock_offset_corrector_0</sink_block_id>
+    <source_key>ppm</source_key>
+    <sink_key>ppm_in</sink_key>
   </connection>
   <connection>
-    <source_block_id>gsm_get_bcch_or_ccch_bursts_0</source_block_id>
-    <sink_block_id>gsm_control_channels_decoder_0</sink_block_id>
-    <source_key>bursts</source_key>
-    <sink_key>bursts</sink_key>
+    <source_block_id>gsm_receiver_hier_0</source_block_id>
+    <sink_block_id>gsm_clock_offset_control_0</sink_block_id>
+    <source_key>measurements</source_key>
+    <sink_key>measurements</sink_key>
   </connection>
   <connection>
     <source_block_id>gsm_control_channels_decoder_0</source_block_id>
@@ -507,9 +505,15 @@
     <sink_key>msgs</sink_key>
   </connection>
   <connection>
+    <source_block_id>gsm_get_bcch_or_ccch_bursts_0</source_block_id>
+    <sink_block_id>gsm_control_channels_decoder_0</sink_block_id>
+    <source_key>bursts</source_key>
+    <sink_key>bursts</sink_key>
+  </connection>
+  <connection>
     <source_block_id>gsm_receiver_hier_0</source_block_id>
-    <sink_block_id>gsm_clock_offset_control_0</sink_block_id>
-    <source_key>measurements</source_key>
-    <sink_key>measurements</sink_key>
+    <sink_block_id>gsm_get_bcch_or_ccch_bursts_0</sink_block_id>
+    <source_key>bursts</source_key>
+    <sink_key>bursts</sink_key>
   </connection>
 </flow_graph>
diff --git a/examples/receiver_rtlsdr.grc b/examples/receiver_rtlsdr.grc
index 513a28d..d7d4ccb 100644
--- a/examples/receiver_rtlsdr.grc
+++ b/examples/receiver_rtlsdr.grc
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='ASCII'?>
 <flow_graph>
-  <timestamp>Thu Aug  7 16:47:30 2014</timestamp>
+  <timestamp>Wed Aug 13 19:03:28 2014</timestamp>
   <block>
     <key>options</key>
     <param>
@@ -29,7 +29,7 @@
     </param>
     <param>
       <key>generate_options</key>
-      <value>wx_gui</value>
+      <value>qt_gui</value>
     </param>
     <param>
       <key>category</key>
@@ -84,7 +84,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(13, 167)</value>
+      <value>(13, 86)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -92,125 +92,7 @@
     </param>
   </block>
   <block>
-    <key>variable_slider</key>
-    <param>
-      <key>id</key>
-      <value>ppm</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>label</key>
-      <value></value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>min</key>
-      <value>-50</value>
-    </param>
-    <param>
-      <key>max</key>
-      <value>50</value>
-    </param>
-    <param>
-      <key>num_steps</key>
-      <value>100</value>
-    </param>
-    <param>
-      <key>style</key>
-      <value>wx.SL_HORIZONTAL</value>
-    </param>
-    <param>
-      <key>converver</key>
-      <value>float_converter</value>
-    </param>
-    <param>
-      <key>grid_pos</key>
-      <value></value>
-    </param>
-    <param>
-      <key>notebook</key>
-      <value></value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(462, 28)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable_slider</key>
-    <param>
-      <key>id</key>
-      <value>fc</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>label</key>
-      <value></value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>940e6</value>
-    </param>
-    <param>
-      <key>min</key>
-      <value>800e6</value>
-    </param>
-    <param>
-      <key>max</key>
-      <value>1000e6</value>
-    </param>
-    <param>
-      <key>num_steps</key>
-      <value>1000</value>
-    </param>
-    <param>
-      <key>style</key>
-      <value>wx.SL_HORIZONTAL</value>
-    </param>
-    <param>
-      <key>converver</key>
-      <value>float_converter</value>
-    </param>
-    <param>
-      <key>grid_pos</key>
-      <value></value>
-    </param>
-    <param>
-      <key>notebook</key>
-      <value></value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(333, 29)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>variable_slider</key>
+    <key>variable_qtgui_range</key>
     <param>
       <key>id</key>
       <value>g</value>
@@ -221,38 +103,38 @@
     </param>
     <param>
       <key>label</key>
-      <value></value>
+      <value>gain</value>
     </param>
     <param>
       <key>value</key>
       <value>43</value>
     </param>
     <param>
-      <key>min</key>
+      <key>start</key>
       <value>0</value>
     </param>
     <param>
-      <key>max</key>
+      <key>stop</key>
+      <value>50</value>
+    </param>
+    <param>
+      <key>step</key>
+      <value>0.5</value>
+    </param>
+    <param>
+      <key>widget</key>
+      <value>counter</value>
+    </param>
+    <param>
+      <key>orient</key>
+      <value>Qt.Horizontal</value>
+    </param>
+    <param>
+      <key>min_len</key>
       <value>100</value>
     </param>
     <param>
-      <key>num_steps</key>
-      <value>100</value>
-    </param>
-    <param>
-      <key>style</key>
-      <value>wx.SL_HORIZONTAL</value>
-    </param>
-    <param>
-      <key>converver</key>
-      <value>float_converter</value>
-    </param>
-    <param>
-      <key>grid_pos</key>
-      <value></value>
-    </param>
-    <param>
-      <key>notebook</key>
+      <key>gui_hint</key>
       <value></value>
     </param>
     <param>
@@ -261,7 +143,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(217, 29)</value>
+      <value>(218, 10)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -269,38 +151,117 @@
     </param>
   </block>
   <block>
-    <key>gsm_get_bcch_or_ccch_bursts</key>
+    <key>variable_qtgui_range</key>
     <param>
       <key>id</key>
-      <value>gsm_get_bcch_or_ccch_bursts_0</value>
+      <value>fc</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>d_fn51_start</key>
-      <value>2</value>
+      <key>label</key>
+      <value>center_frequency</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>939.4e6</value>
+    </param>
+    <param>
+      <key>start</key>
+      <value>925e6</value>
+    </param>
+    <param>
+      <key>stop</key>
+      <value>960e6</value>
+    </param>
+    <param>
+      <key>step</key>
+      <value>2e5</value>
+    </param>
+    <param>
+      <key>widget</key>
+      <value>counter_slider</value>
+    </param>
+    <param>
+      <key>orient</key>
+      <value>Qt.Horizontal</value>
+    </param>
+    <param>
+      <key>min_len</key>
+      <value>100</value>
+    </param>
+    <param>
+      <key>gui_hint</key>
+      <value></value>
     </param>
     <param>
       <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>affinity</key>
+      <key>_coordinate</key>
+      <value>(330, 9)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>variable_qtgui_range</key>
+    <param>
+      <key>id</key>
+      <value>ppm</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>label</key>
+      <value>clock_correction</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>start</key>
+      <value>-50</value>
+    </param>
+    <param>
+      <key>stop</key>
+      <value>50</value>
+    </param>
+    <param>
+      <key>step</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>widget</key>
+      <value>counter</value>
+    </param>
+    <param>
+      <key>orient</key>
+      <value>Qt.Horizontal</value>
+    </param>
+    <param>
+      <key>min_len</key>
+      <value>100</value>
+    </param>
+    <param>
+      <key>gui_hint</key>
       <value></value>
     </param>
     <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(659, 316)</value>
+      <value>(473, 10)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -391,7 +352,7 @@
     </param>
     <param>
       <key>gain_mode1</key>
-      <value>0</value>
+      <value>True</value>
     </param>
     <param>
       <key>gain1</key>
@@ -431,7 +392,7 @@
     </param>
     <param>
       <key>gain_mode2</key>
-      <value>0</value>
+      <value>True</value>
     </param>
     <param>
       <key>gain2</key>
@@ -471,7 +432,7 @@
     </param>
     <param>
       <key>gain_mode3</key>
-      <value>0</value>
+      <value>True</value>
     </param>
     <param>
       <key>gain3</key>
@@ -511,7 +472,7 @@
     </param>
     <param>
       <key>gain_mode4</key>
-      <value>0</value>
+      <value>True</value>
     </param>
     <param>
       <key>gain4</key>
@@ -551,7 +512,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(5, 244)</value>
+      <value>(4, 171)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -559,10 +520,10 @@
     </param>
   </block>
   <block>
-    <key>wxgui_fftsink2</key>
+    <key>qtgui_sink_x</key>
     <param>
       <key>id</key>
-      <value>wxgui_fftsink2_0</value>
+      <value>qtgui_sink_x_0</value>
     </param>
     <param>
       <key>_enabled</key>
@@ -573,148 +534,62 @@
       <value>complex</value>
     </param>
     <param>
-      <key>title</key>
-      <value>FFT Plot</value>
+      <key>name</key>
+      <value>""</value>
     </param>
     <param>
-      <key>samp_rate</key>
-      <value>samp_rate</value>
-    </param>
-    <param>
-      <key>baseband_freq</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>y_per_div</key>
-      <value>10</value>
-    </param>
-    <param>
-      <key>y_divs</key>
-      <value>10</value>
-    </param>
-    <param>
-      <key>ref_level</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ref_scale</key>
-      <value>2.0</value>
-    </param>
-    <param>
-      <key>fft_size</key>
+      <key>fftsize</key>
       <value>1024</value>
     </param>
     <param>
-      <key>fft_rate</key>
-      <value>15</value>
-    </param>
-    <param>
-      <key>peak_hold</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>average</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>avg_alpha</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>win</key>
-      <value>None</value>
-    </param>
-    <param>
-      <key>win_size</key>
-      <value></value>
-    </param>
-    <param>
-      <key>grid_pos</key>
-      <value></value>
-    </param>
-    <param>
-      <key>notebook</key>
-      <value></value>
-    </param>
-    <param>
-      <key>freqvar</key>
-      <value>None</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(455, 398)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>gsm_control_channels_decoder</key>
-    <param>
-      <key>id</key>
-      <value>gsm_control_channels_decoder_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(919, 320)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>clock_offset_corrector</key>
-    <param>
-      <key>id</key>
-      <value>clock_offset_corrector_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>ppm</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>samp_rate</key>
-      <value>samp_rate</value>
+      <key>wintype</key>
+      <value>firdes.WIN_BLACKMAN_hARRIS</value>
     </param>
     <param>
       <key>fc</key>
       <value>fc</value>
     </param>
     <param>
+      <key>bw</key>
+      <value>samp_rate</value>
+    </param>
+    <param>
+      <key>rate</key>
+      <value>10</value>
+    </param>
+    <param>
+      <key>showrf</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>plotfreq</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>plotwaterfall</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>plottime</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>plotconst</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>gui_hint</key>
+      <value></value>
+    </param>
+    <param>
+      <key>freqchangevar</key>
+      <value>None</value>
+    </param>
+    <param>
+      <key>showports</key>
+      <value>True</value>
+    </param>
+    <param>
       <key>alias</key>
       <value></value>
     </param>
@@ -732,7 +607,46 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(252, 317)</value>
+      <value>(455, 374)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>gsm_get_bcch_or_ccch_bursts</key>
+    <param>
+      <key>id</key>
+      <value>gsm_get_bcch_or_ccch_bursts_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>d_fn51_start</key>
+      <value>2</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(660, 243)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -775,7 +689,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(330, 235)</value>
+      <value>(329, 155)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -783,14 +697,30 @@
     </param>
   </block>
   <block>
-    <key>gsm_message_printer</key>
+    <key>clock_offset_corrector</key>
     <param>
       <key>id</key>
-      <value>gsm_message_printer_0</value>
+      <value>clock_offset_corrector_0</value>
     </param>
     <param>
       <key>_enabled</key>
-      <value>False</value>
+      <value>True</value>
+    </param>
+    <param>
+      <key>fc</key>
+      <value>fc</value>
+    </param>
+    <param>
+      <key>ppm</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>samp_rate_in</key>
+      <value>samp_rate</value>
+    </param>
+    <param>
+      <key>samp_rate_out</key>
+      <value>samp_rate</value>
     </param>
     <param>
       <key>alias</key>
@@ -801,8 +731,16 @@
       <value></value>
     </param>
     <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
       <key>_coordinate</key>
-      <value>(1140, 320)</value>
+      <value>(251, 236)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -810,13 +748,37 @@
     </param>
   </block>
   <block>
-    <key>blocks_message_debug</key>
+    <key>blocks_tag_debug</key>
     <param>
       <key>id</key>
-      <value>blocks_message_debug_0</value>
+      <value>blocks_tag_debug_0</value>
     </param>
     <param>
       <key>_enabled</key>
+      <value>False</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>complex</value>
+    </param>
+    <param>
+      <key>name</key>
+      <value></value>
+    </param>
+    <param>
+      <key>filter</key>
+      <value>""</value>
+    </param>
+    <param>
+      <key>num_inputs</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>display</key>
       <value>True</value>
     </param>
     <param>
@@ -829,7 +791,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(265, 450)</value>
+      <value>(456, 477)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -876,7 +838,123 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(458, 317)</value>
+      <value>(455, 244)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>blocks_message_debug</key>
+    <param>
+      <key>id</key>
+      <value>blocks_message_debug_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>False</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(240, 406)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>gsm_control_channels_decoder</key>
+    <param>
+      <key>id</key>
+      <value>gsm_control_channels_decoder_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(920, 247)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>gsm_message_printer</key>
+    <param>
+      <key>id</key>
+      <value>gsm_message_printer_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>False</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(1128, 169)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>gsm_message_printer</key>
+    <param>
+      <key>id</key>
+      <value>gsm_message_printer_1</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(1141, 247)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -884,16 +962,10 @@
     </param>
   </block>
   <connection>
-    <source_block_id>gsm_control_channels_decoder_0</source_block_id>
-    <sink_block_id>gsm_message_printer_0</sink_block_id>
-    <source_key>msgs</source_key>
-    <sink_key>msgs</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>gsm_clock_offset_control_0</source_block_id>
-    <sink_block_id>clock_offset_corrector_0</sink_block_id>
-    <source_key>ppm</source_key>
-    <sink_key>ppm</sink_key>
+    <source_block_id>clock_offset_corrector_0</source_block_id>
+    <sink_block_id>gsm_receiver_hier_0</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>0</sink_key>
   </connection>
   <connection>
     <source_block_id>rtlsdr_source_0</source_block_id>
@@ -903,15 +975,15 @@
   </connection>
   <connection>
     <source_block_id>clock_offset_corrector_0</source_block_id>
-    <sink_block_id>wxgui_fftsink2_0</sink_block_id>
+    <sink_block_id>qtgui_sink_x_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>clock_offset_corrector_0</source_block_id>
-    <sink_block_id>gsm_receiver_hier_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
+    <source_block_id>gsm_get_bcch_or_ccch_bursts_0</source_block_id>
+    <sink_block_id>gsm_control_channels_decoder_0</sink_block_id>
+    <source_key>bursts</source_key>
+    <sink_key>bursts</sink_key>
   </connection>
   <connection>
     <source_block_id>gsm_receiver_hier_0</source_block_id>
@@ -926,10 +998,22 @@
     <sink_key>measurements</sink_key>
   </connection>
   <connection>
-    <source_block_id>gsm_get_bcch_or_ccch_bursts_0</source_block_id>
-    <sink_block_id>gsm_control_channels_decoder_0</sink_block_id>
-    <source_key>bursts</source_key>
-    <sink_key>bursts</sink_key>
+    <source_block_id>gsm_control_channels_decoder_0</source_block_id>
+    <sink_block_id>gsm_message_printer_0</sink_block_id>
+    <source_key>msgs</source_key>
+    <sink_key>msgs</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>gsm_clock_offset_control_0</source_block_id>
+    <sink_block_id>clock_offset_corrector_0</sink_block_id>
+    <source_key>ppm</source_key>
+    <sink_key>ppm_in</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>clock_offset_corrector_0</source_block_id>
+    <sink_block_id>blocks_tag_debug_0</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>0</sink_key>
   </connection>
   <connection>
     <source_block_id>gsm_receiver_hier_0</source_block_id>
@@ -937,4 +1021,10 @@
     <source_key>measurements</source_key>
     <sink_key>print</sink_key>
   </connection>
+  <connection>
+    <source_block_id>gsm_control_channels_decoder_0</source_block_id>
+    <sink_block_id>gsm_message_printer_1</sink_block_id>
+    <source_key>msgs</source_key>
+    <sink_key>msgs</sink_key>
+  </connection>
 </flow_graph>
diff --git a/examples/receiver_usrp.grc b/examples/receiver_usrp.grc
index a7a8dcf..c6fd77a 100644
--- a/examples/receiver_usrp.grc
+++ b/examples/receiver_usrp.grc
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='ASCII'?>
 <flow_graph>
-  <timestamp>Wed Aug  6 19:56:07 2014</timestamp>
+  <timestamp>Wed Aug 13 19:03:38 2014</timestamp>
   <block>
     <key>options</key>
     <param>
@@ -249,6 +249,253 @@
     </param>
   </block>
   <block>
+    <key>wxgui_fftsink2</key>
+    <param>
+      <key>id</key>
+      <value>wxgui_fftsink2_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>complex</value>
+    </param>
+    <param>
+      <key>title</key>
+      <value>FFT Plot</value>
+    </param>
+    <param>
+      <key>samp_rate</key>
+      <value>samp_rate</value>
+    </param>
+    <param>
+      <key>baseband_freq</key>
+      <value>fc</value>
+    </param>
+    <param>
+      <key>y_per_div</key>
+      <value>10</value>
+    </param>
+    <param>
+      <key>y_divs</key>
+      <value>10</value>
+    </param>
+    <param>
+      <key>ref_level</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>ref_scale</key>
+      <value>2.0</value>
+    </param>
+    <param>
+      <key>fft_size</key>
+      <value>1024</value>
+    </param>
+    <param>
+      <key>fft_rate</key>
+      <value>15</value>
+    </param>
+    <param>
+      <key>peak_hold</key>
+      <value>False</value>
+    </param>
+    <param>
+      <key>average</key>
+      <value>False</value>
+    </param>
+    <param>
+      <key>avg_alpha</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>win</key>
+      <value>None</value>
+    </param>
+    <param>
+      <key>win_size</key>
+      <value></value>
+    </param>
+    <param>
+      <key>grid_pos</key>
+      <value>1,1,1,1</value>
+    </param>
+    <param>
+      <key>notebook</key>
+      <value></value>
+    </param>
+    <param>
+      <key>freqvar</key>
+      <value>None</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(284, 367)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>gsm_receiver_hier</key>
+    <param>
+      <key>id</key>
+      <value>gsm_receiver_hier_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>input_rate</key>
+      <value>samp_rate</value>
+    </param>
+    <param>
+      <key>osr</key>
+      <value>4</value>
+    </param>
+    <param>
+      <key>arfcn</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(266, 269)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>gsm_message_printer</key>
+    <param>
+      <key>id</key>
+      <value>gsm_message_printer_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(905, 272)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>gsm_control_channels_decoder</key>
+    <param>
+      <key>id</key>
+      <value>gsm_control_channels_decoder_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(694, 272)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>gsm_get_bcch_or_ccch_bursts</key>
+    <param>
+      <key>id</key>
+      <value>gsm_get_bcch_or_ccch_bursts_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>d_fn51_start</key>
+      <value>2</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(452, 268)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
     <key>uhd_usrp_source</key>
     <param>
       <key>id</key>
@@ -296,7 +543,7 @@
     </param>
     <param>
       <key>clock_source0</key>
-      <value>external</value>
+      <value></value>
     </param>
     <param>
       <key>time_source0</key>
@@ -928,254 +1175,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(22, 253)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>wxgui_fftsink2</key>
-    <param>
-      <key>id</key>
-      <value>wxgui_fftsink2_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>complex</value>
-    </param>
-    <param>
-      <key>title</key>
-      <value>FFT Plot</value>
-    </param>
-    <param>
-      <key>samp_rate</key>
-      <value>samp_rate</value>
-    </param>
-    <param>
-      <key>baseband_freq</key>
-      <value>fc</value>
-    </param>
-    <param>
-      <key>y_per_div</key>
-      <value>10</value>
-    </param>
-    <param>
-      <key>y_divs</key>
-      <value>10</value>
-    </param>
-    <param>
-      <key>ref_level</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>ref_scale</key>
-      <value>2.0</value>
-    </param>
-    <param>
-      <key>fft_size</key>
-      <value>1024</value>
-    </param>
-    <param>
-      <key>fft_rate</key>
-      <value>15</value>
-    </param>
-    <param>
-      <key>peak_hold</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>average</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>avg_alpha</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>win</key>
-      <value>None</value>
-    </param>
-    <param>
-      <key>win_size</key>
-      <value></value>
-    </param>
-    <param>
-      <key>grid_pos</key>
-      <value>1,1,1,1</value>
-    </param>
-    <param>
-      <key>notebook</key>
-      <value></value>
-    </param>
-    <param>
-      <key>freqvar</key>
-      <value>None</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(284, 367)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>gsm_get_bcch_or_ccch_bursts</key>
-    <param>
-      <key>id</key>
-      <value>gsm_get_bcch_or_ccch_bursts_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>d_fn51_start</key>
-      <value>2</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(452, 268)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>gsm_control_channels_decoder</key>
-    <param>
-      <key>id</key>
-      <value>gsm_control_channels_decoder_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(694, 272)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>gsm_message_printer</key>
-    <param>
-      <key>id</key>
-      <value>gsm_message_printer_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(905, 272)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>gsm_receiver_hier</key>
-    <param>
-      <key>id</key>
-      <value>gsm_receiver_hier_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>input_rate</key>
-      <value>samp_rate</value>
-    </param>
-    <param>
-      <key>osr</key>
-      <value>4</value>
-    </param>
-    <param>
-      <key>arfcn</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(266, 269)</value>
+      <value>(25, 261)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1195,8 +1195,8 @@
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>gsm_get_bcch_or_ccch_bursts_0</source_block_id>
-    <sink_block_id>gsm_control_channels_decoder_0</sink_block_id>
+    <source_block_id>gsm_receiver_hier_0</source_block_id>
+    <sink_block_id>gsm_get_bcch_or_ccch_bursts_0</sink_block_id>
     <source_key>bursts</source_key>
     <sink_key>bursts</sink_key>
   </connection>
@@ -1207,8 +1207,8 @@
     <sink_key>msgs</sink_key>
   </connection>
   <connection>
-    <source_block_id>gsm_receiver_hier_0</source_block_id>
-    <sink_block_id>gsm_get_bcch_or_ccch_bursts_0</sink_block_id>
+    <source_block_id>gsm_get_bcch_or_ccch_bursts_0</source_block_id>
+    <sink_block_id>gsm_control_channels_decoder_0</sink_block_id>
     <source_key>bursts</source_key>
     <sink_key>bursts</sink_key>
   </connection>
diff --git a/grc/CMakeLists.txt b/grc/CMakeLists.txt
index 8aa9b02..c95646d 100644
--- a/grc/CMakeLists.txt
+++ b/grc/CMakeLists.txt
@@ -17,17 +17,18 @@
 # the Free Software Foundation, Inc., 51 Franklin Street,
 # Boston, MA 02110-1301, USA.
 install(FILES
-    gsm_receiver_hier.xml
-    gsm_bursts_printer.xml
-    gsm_fcch_burst_tagger.xml
-    gsm_sch_detector.xml
-    gsm_fcch_detector.xml
-    gsm_get_bcch_or_ccch_bursts.xml
-    gsm_control_channels_decoder.xml
-    gsm_extract_system_info.xml
-    gsm_controlled_rotator_cc.xml
-    gsm_controlled_const_source_f.xml
-    gsm_clock_offset_control.xml
-    gsm_message_printer.xml 
-    gsm_clock_offset_corrector.xml DESTINATION share/gnuradio/grc/blocks
+    receiver/gsm_receiver.xml
+    receiver/gsm_receiver_hier.xml
+    misc_utils/gsm_bursts_printer.xml
+    receiver/gsm_fcch_burst_tagger.xml
+    receiver/gsm_sch_detector.xml
+    receiver/gsm_fcch_detector.xml
+    demapping/gsm_get_bcch_or_ccch_bursts.xml
+    decoding/gsm_control_channels_decoder.xml
+    misc_utils/gsm_extract_system_info.xml
+    misc_utils/gsm_controlled_rotator_cc.xml
+    misc_utils/gsm_controlled_const_source_f.xml
+    receiver/gsm_clock_offset_control.xml
+    misc_utils/gsm_message_printer.xml 
+    misc_utils/gsm_clock_offset_corrector.xml DESTINATION share/gnuradio/grc/blocks
 )
diff --git a/grc/gsm_control_channels_decoder.xml b/grc/decoding/gsm_control_channels_decoder.xml
similarity index 100%
rename from grc/gsm_control_channels_decoder.xml
rename to grc/decoding/gsm_control_channels_decoder.xml
diff --git a/grc/gsm_get_bcch_or_ccch_bursts.xml b/grc/demapping/gsm_get_bcch_or_ccch_bursts.xml
similarity index 100%
rename from grc/gsm_get_bcch_or_ccch_bursts.xml
rename to grc/demapping/gsm_get_bcch_or_ccch_bursts.xml
diff --git a/grc/gsm_clock_offset_corrector.xml b/grc/gsm_clock_offset_corrector.xml
deleted file mode 100644
index a4b3cd3..0000000
--- a/grc/gsm_clock_offset_corrector.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version='1.0' encoding='ASCII'?>
-<block>
-  <name>Clock offset corrector</name>
-  <key>clock_offset_corrector</key>
-  <category>GSM</category>
-  <import>import gsm</import>
-  <make>gsm.clock_offset_corrector(ppm=$ppm,samp_rate=$samp_rate,fc=$fc)</make>
-  <callback>set_ppm($ppm)</callback>
-  <callback>set_samp_rate($samp_rate)</callback>
-  <callback>set_fc($fc)</callback>
-  <param>
-    <name>ppm</name>
-    <key>ppm</key>
-    <value>0</value>
-    <type>raw</type>
-  </param>
-  <param>
-    <name>samp_rate</name>
-    <key>samp_rate</key>
-    <value>samp_rate</value>
-    <type>raw</type>
-  </param>
-  <param>
-    <name>fc</name>
-    <key>fc</key>
-    <value>fc</value>
-    <type>raw</type>
-  </param>
-  <sink>
-    <name>in</name>
-    <type>complex</type>
-    <vlen>1</vlen>
-  </sink>
-  <sink>
-    <name>ppm</name>
-    <type>message</type>
-    <optional>True</optional>
-  </sink>
-  <source>
-    <name>out</name>
-    <type>complex</type>
-    <vlen>1</vlen>
-  </source>
-  <doc>Piotr Krysik</doc>
-<!--  <grc_source>/home/piotr/Odbiornik_gsm/gr-gsm/hier_blocks/clock_offset_corrector.grc</grc_source> -->
-</block>
diff --git a/grc/gsm_bursts_printer.xml b/grc/misc_utils/gsm_bursts_printer.xml
similarity index 100%
rename from grc/gsm_bursts_printer.xml
rename to grc/misc_utils/gsm_bursts_printer.xml
diff --git a/grc/misc_utils/gsm_clock_offset_corrector.xml b/grc/misc_utils/gsm_clock_offset_corrector.xml
new file mode 100644
index 0000000..7fe4a4d
--- /dev/null
+++ b/grc/misc_utils/gsm_clock_offset_corrector.xml
@@ -0,0 +1,58 @@
+<?xml version='1.0' encoding='ASCII'?>
+<block>
+  <name>Clock offset corrector</name>
+  <key>clock_offset_corrector</key>
+  <category>GSM</category>
+  <import>import gsm</import>
+  <make>gsm.clock_offset_corrector(
+    fc=$fc,
+    ppm=$ppm,
+    samp_rate_in=$samp_rate_in,
+    samp_rate_out=$samp_rate_out,
+)</make>
+  <callback>set_fc($fc)</callback>
+  <callback>set_ppm($ppm)</callback>
+  <callback>set_samp_rate_in($samp_rate_in)</callback>
+  <callback>set_samp_rate_out($samp_rate_out)</callback>
+  <param>
+    <name>fc</name>
+    <key>fc</key>
+    <value>936.6e6</value>
+    <type>raw</type>
+  </param>
+  <param>
+    <name>ppm</name>
+    <key>ppm</key>
+    <value>0</value>
+    <type>raw</type>
+  </param>
+  <param>
+    <name>samp_rate_in</name>
+    <key>samp_rate_in</key>
+    <value>1625000.0/6.0*4.0</value>
+    <type>raw</type>
+  </param>
+  <param>
+    <name>samp_rate_out</name>
+    <key>samp_rate_out</key>
+    <value>1625000.0/6.0*4.0</value>
+    <type>raw</type>
+  </param>
+  <sink>
+    <name>in</name>
+    <type>complex</type>
+    <vlen>1</vlen>
+  </sink>
+  <sink>
+    <name>ppm_in</name>
+    <type>message</type>
+    <optional>True</optional>
+  </sink>
+  <source>
+    <name>out</name>
+    <type>complex</type>
+    <vlen>1</vlen>
+  </source>
+  <doc>Piotr Krysik</doc>
+<!--  <grc_source></grc_source> -->
+</block>
diff --git a/grc/gsm_controlled_const_source_f.xml b/grc/misc_utils/gsm_controlled_const_source_f.xml
similarity index 100%
rename from grc/gsm_controlled_const_source_f.xml
rename to grc/misc_utils/gsm_controlled_const_source_f.xml
diff --git a/grc/gsm_controlled_rotator_cc.xml b/grc/misc_utils/gsm_controlled_rotator_cc.xml
similarity index 100%
rename from grc/gsm_controlled_rotator_cc.xml
rename to grc/misc_utils/gsm_controlled_rotator_cc.xml
diff --git a/grc/gsm_extract_system_info.xml b/grc/misc_utils/gsm_extract_system_info.xml
similarity index 100%
rename from grc/gsm_extract_system_info.xml
rename to grc/misc_utils/gsm_extract_system_info.xml
diff --git a/grc/gsm_message_printer.xml b/grc/misc_utils/gsm_message_printer.xml
similarity index 100%
rename from grc/gsm_message_printer.xml
rename to grc/misc_utils/gsm_message_printer.xml
diff --git a/grc/gsm_clock_offset_control.xml b/grc/receiver/gsm_clock_offset_control.xml
similarity index 93%
rename from grc/gsm_clock_offset_control.xml
rename to grc/receiver/gsm_clock_offset_control.xml
index bb4dadb..a5c8854 100644
--- a/grc/gsm_clock_offset_control.xml
+++ b/grc/receiver/gsm_clock_offset_control.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <block>
-  <name>Clock offset control</name>
+  <name>GSM clock offset control</name>
   <key>gsm_clock_offset_control</key>
   <category>GSM</category>
   <import>import gsm</import>
diff --git a/grc/gsm_fcch_burst_tagger.xml b/grc/receiver/gsm_fcch_burst_tagger.xml
similarity index 100%
rename from grc/gsm_fcch_burst_tagger.xml
rename to grc/receiver/gsm_fcch_burst_tagger.xml
diff --git a/grc/gsm_fcch_detector.xml b/grc/receiver/gsm_fcch_detector.xml
similarity index 100%
rename from grc/gsm_fcch_detector.xml
rename to grc/receiver/gsm_fcch_detector.xml
diff --git a/grc/gsm_receiver_hier.xml b/grc/receiver/gsm_receiver.xml
similarity index 71%
copy from grc/gsm_receiver_hier.xml
copy to grc/receiver/gsm_receiver.xml
index ca28972..eb0db5f 100644
--- a/grc/gsm_receiver_hier.xml
+++ b/grc/receiver/gsm_receiver.xml
@@ -1,16 +1,10 @@
 <?xml version="1.0"?>
 <block>
-  <name>GSM Receiver</name>
-  <key>gsm_receiver_hier</key>
+  <name>GSM Receiver bare</name>
+  <key>gsm_receiver</key>
   <category>GSM</category>
   <import>import gsm</import>
-  <make>gsm.receiver_hier($input_rate, $osr)</make>
-  <param>
-    <name>Input rate</name>
-    <key>input_rate</key>
-    <value>samp_rate</value>
-    <type>real</type>
-  </param>
+  <make>gsm.receiver($osr, $arfcn)</make>
 
   <param>
     <name>Oversampling ratio</name>
diff --git a/grc/gsm_receiver_hier.xml b/grc/receiver/gsm_receiver_hier.xml
similarity index 88%
rename from grc/gsm_receiver_hier.xml
rename to grc/receiver/gsm_receiver_hier.xml
index ca28972..b41eb99 100644
--- a/grc/gsm_receiver_hier.xml
+++ b/grc/receiver/gsm_receiver_hier.xml
@@ -1,10 +1,10 @@
 <?xml version="1.0"?>
 <block>
-  <name>GSM Receiver</name>
+  <name>GSM Receiver hier</name>
   <key>gsm_receiver_hier</key>
   <category>GSM</category>
   <import>import gsm</import>
-  <make>gsm.receiver_hier($input_rate, $osr)</make>
+  <make>gsm.receiver_hier($input_rate, $osr, $arfcn)</make>
   <param>
     <name>Input rate</name>
     <key>input_rate</key>
diff --git a/grc/gsm_sch_detector.xml b/grc/receiver/gsm_sch_detector.xml
similarity index 100%
rename from grc/gsm_sch_detector.xml
rename to grc/receiver/gsm_sch_detector.xml
diff --git a/hier_blocks/clock_offset_corrector.grc b/hier_blocks/misc_utils/gsm_clock_offset_corrector.grc
similarity index 89%
rename from hier_blocks/clock_offset_corrector.grc
rename to hier_blocks/misc_utils/gsm_clock_offset_corrector.grc
index 97dde85..10ed7ef 100644
--- a/hier_blocks/clock_offset_corrector.grc
+++ b/hier_blocks/misc_utils/gsm_clock_offset_corrector.grc
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='ASCII'?>
 <flow_graph>
-  <timestamp>Wed Aug  6 19:56:28 2014</timestamp>
+  <timestamp>Wed Aug 13 16:44:37 2014</timestamp>
   <block>
     <key>options</key>
     <param>
@@ -65,123 +65,6 @@
     </param>
   </block>
   <block>
-    <key>parameter</key>
-    <param>
-      <key>id</key>
-      <value>ppm</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>label</key>
-      <value>ppm</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>eng_float</value>
-    </param>
-    <param>
-      <key>short_id</key>
-      <value></value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(487, 22)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>parameter</key>
-    <param>
-      <key>id</key>
-      <value>samp_rate</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>label</key>
-      <value>samp_rate</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>1625000.0/6.0*4.0</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>eng_float</value>
-    </param>
-    <param>
-      <key>short_id</key>
-      <value></value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(368, 19)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>parameter</key>
-    <param>
-      <key>id</key>
-      <value>fc</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>label</key>
-      <value>fc</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>936.6e6</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>eng_float</value>
-    </param>
-    <param>
-      <key>short_id</key>
-      <value></value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(274, 19)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
     <key>import</key>
     <param>
       <key>id</key>
@@ -209,225 +92,6 @@
     </param>
   </block>
   <block>
-    <key>blocks_multiply_const_vxx</key>
-    <param>
-      <key>id</key>
-      <value>blocks_multiply_const_vxx_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>float</value>
-    </param>
-    <param>
-      <key>const</key>
-      <value>fc/samp_rate*(2*math.pi)</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(571, 335)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>blocks_add_const_vxx</key>
-    <param>
-      <key>id</key>
-      <value>blocks_add_const_vxx_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>float</value>
-    </param>
-    <param>
-      <key>const</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(779, 217)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>blocks_multiply_const_vxx</key>
-    <param>
-      <key>id</key>
-      <value>blocks_multiply_const_vxx_0_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>float</value>
-    </param>
-    <param>
-      <key>const</key>
-      <value>1.0/1.0e6</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
-    </param>
-    <param>
-      <key>affinity</key>
-      <value></value>
-    </param>
-    <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(405, 217)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>pad_source</key>
-    <param>
-      <key>id</key>
-      <value>pad_source_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>label</key>
-      <value>in</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>complex</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>num_streams</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>optional</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(13, 301)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>pad_sink</key>
-    <param>
-      <key>id</key>
-      <value>pad_sink_1</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>label</key>
-      <value>out</value>
-    </param>
-    <param>
-      <key>type</key>
-      <value>complex</value>
-    </param>
-    <param>
-      <key>vlen</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>num_streams</key>
-      <value>1</value>
-    </param>
-    <param>
-      <key>optional</key>
-      <value>False</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(1174, 335)</value>
-    </param>
-    <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
     <key>fractional_resampler_xx</key>
     <param>
       <key>id</key>
@@ -467,7 +131,327 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(986, 322)</value>
+      <value>(720, 303)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>pad_source</key>
+    <param>
+      <key>id</key>
+      <value>pad_source_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>label</key>
+      <value>in</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>complex</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>num_streams</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>optional</key>
+      <value>False</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(14, 299)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>pad_sink</key>
+    <param>
+      <key>id</key>
+      <value>pad_sink_1</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>label</key>
+      <value>out</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>complex</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>num_streams</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>optional</key>
+      <value>False</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(1170, 333)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>parameter</key>
+    <param>
+      <key>id</key>
+      <value>fc</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>label</key>
+      <value>fc</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>936.6e6</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>eng_float</value>
+    </param>
+    <param>
+      <key>short_id</key>
+      <value></value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(274, 19)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>parameter</key>
+    <param>
+      <key>id</key>
+      <value>ppm</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>label</key>
+      <value>ppm</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>eng_float</value>
+    </param>
+    <param>
+      <key>short_id</key>
+      <value></value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(496, 19)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>parameter</key>
+    <param>
+      <key>id</key>
+      <value>samp_rate_in</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>label</key>
+      <value>samp_rate_in</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>1625000.0/6.0*4.0</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>eng_float</value>
+    </param>
+    <param>
+      <key>short_id</key>
+      <value></value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(368, 19)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>pad_source</key>
+    <param>
+      <key>id</key>
+      <value>ppm_in</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>label</key>
+      <value>ppm_in</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>message</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>num_streams</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>optional</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(15, 217)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>parameter</key>
+    <param>
+      <key>id</key>
+      <value>samp_rate_out</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>label</key>
+      <value>samp_rate_out</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>1625000.0/6.0*4.0</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>eng_float</value>
+    </param>
+    <param>
+      <key>short_id</key>
+      <value></value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(592, 20)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>blocks_multiply_const_vxx</key>
+    <param>
+      <key>id</key>
+      <value>blocks_multiply_const_vxx_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>float</value>
+    </param>
+    <param>
+      <key>const</key>
+      <value>fc/samp_rate_out*(2*math.pi)/1e6</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(724, 217)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -514,22 +498,26 @@
     </param>
   </block>
   <block>
-    <key>gsm_controlled_rotator_cc</key>
+    <key>blocks_add_const_vxx</key>
     <param>
       <key>id</key>
-      <value>gsm_controlled_rotator_cc_0</value>
+      <value>blocks_add_const_vxx_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>phase_inc</key>
-      <value>0</value>
+      <key>type</key>
+      <value>float</value>
     </param>
     <param>
-      <key>samp_rate</key>
-      <value>samp_rate</value>
+      <key>const</key>
+      <value>samp_rate_in/samp_rate_out</value>
+    </param>
+    <param>
+      <key>vlen</key>
+      <value>1</value>
     </param>
     <param>
       <key>alias</key>
@@ -549,7 +537,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(759, 305)</value>
+      <value>(571, 333)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -557,38 +545,89 @@
     </param>
   </block>
   <block>
-    <key>pad_source</key>
+    <key>blocks_multiply_const_vxx</key>
     <param>
       <key>id</key>
-      <value>ppm</value>
+      <value>blocks_multiply_const_vxx_0_0</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>label</key>
-      <value>ppm</value>
+      <key>type</key>
+      <value>float</value>
     </param>
     <param>
-      <key>type</key>
-      <value>message</value>
+      <key>const</key>
+      <value>1.0e-6*samp_rate_in/samp_rate_out</value>
     </param>
     <param>
       <key>vlen</key>
       <value>1</value>
     </param>
     <param>
-      <key>num_streams</key>
-      <value>1</value>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
-      <key>optional</key>
-      <value>True</value>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(15, 217)</value>
+      <value>(411, 333)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>gsm_controlled_rotator_cc</key>
+    <param>
+      <key>id</key>
+      <value>gsm_controlled_rotator_cc_0</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>phase_inc</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>samp_rate</key>
+      <value>samp_rate_out</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(973, 320)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -596,57 +635,57 @@
     </param>
   </block>
   <connection>
-    <source_block_id>gsm_controlled_const_source_f_0</source_block_id>
-    <sink_block_id>blocks_multiply_const_vxx_0_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>pad_source_0</source_block_id>
-    <sink_block_id>gsm_controlled_rotator_cc_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
-    <source_block_id>blocks_multiply_const_vxx_0_0</source_block_id>
-    <sink_block_id>blocks_multiply_const_vxx_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
     <source_block_id>blocks_add_const_vxx_0</source_block_id>
     <sink_block_id>fractional_resampler_xx_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>1</sink_key>
   </connection>
   <connection>
-    <source_block_id>gsm_controlled_rotator_cc_0</source_block_id>
-    <sink_block_id>fractional_resampler_xx_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
     <source_block_id>blocks_multiply_const_vxx_0</source_block_id>
     <sink_block_id>gsm_controlled_rotator_cc_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>1</sink_key>
   </connection>
   <connection>
+    <source_block_id>fractional_resampler_xx_0</source_block_id>
+    <sink_block_id>gsm_controlled_rotator_cc_0</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>0</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>gsm_controlled_rotator_cc_0</source_block_id>
+    <sink_block_id>pad_sink_1</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>0</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>pad_source_0</source_block_id>
+    <sink_block_id>fractional_resampler_xx_0</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>0</sink_key>
+  </connection>
+  <connection>
     <source_block_id>blocks_multiply_const_vxx_0_0</source_block_id>
     <sink_block_id>blocks_add_const_vxx_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>fractional_resampler_xx_0</source_block_id>
-    <sink_block_id>pad_sink_1</sink_block_id>
+    <source_block_id>gsm_controlled_const_source_f_0</source_block_id>
+    <sink_block_id>blocks_multiply_const_vxx_0_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>ppm</source_block_id>
+    <source_block_id>ppm_in</source_block_id>
     <sink_block_id>gsm_controlled_const_source_f_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>constant_msg</sink_key>
   </connection>
+  <connection>
+    <source_block_id>gsm_controlled_const_source_f_0</source_block_id>
+    <sink_block_id>blocks_multiply_const_vxx_0</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>0</sink_key>
+  </connection>
 </flow_graph>
diff --git a/hier_blocks/gsm_fcch_detector.grc b/hier_blocks/receiver/gsm_fcch_detector.grc
similarity index 100%
rename from hier_blocks/gsm_fcch_detector.grc
rename to hier_blocks/receiver/gsm_fcch_detector.grc
diff --git a/include/gsm/CMakeLists.txt b/include/gsm/CMakeLists.txt
index c704e26..3173e3d 100644
--- a/include/gsm/CMakeLists.txt
+++ b/include/gsm/CMakeLists.txt
@@ -22,13 +22,13 @@
 ########################################################################
 install(FILES
     api.h
-    receiver.h
-    bursts_printer.h
-    get_bcch_or_ccch_bursts.h
-    control_channels_decoder.h 
+    receiver/receiver.h
+    misc_utils/bursts_printer.h
+    demapping/get_bcch_or_ccch_bursts.h
+    decoding/control_channels_decoder.h 
     gsmtap.h
-    extract_system_info.h
-    controlled_rotator_cc.h
-    controlled_const_source_f.h
-    message_printer.h DESTINATION include/gsm
+    misc_utils/extract_system_info.h
+    misc_utils/controlled_rotator_cc.h
+    misc_utils/controlled_const_source_f.h
+    misc_utils/message_printer.h DESTINATION include/gsm
 )
diff --git a/include/gsm/control_channels_decoder.h b/include/gsm/decoding/control_channels_decoder.h
similarity index 99%
rename from include/gsm/control_channels_decoder.h
rename to include/gsm/decoding/control_channels_decoder.h
index a44f43e..49a8e35 100644
--- a/include/gsm/control_channels_decoder.h
+++ b/include/gsm/decoding/control_channels_decoder.h
@@ -47,6 +47,7 @@
        * creating new instances.
        */
       static sptr make();
+
     };
 
   } // namespace gsm
diff --git a/include/gsm/get_bcch_or_ccch_bursts.h b/include/gsm/demapping/get_bcch_or_ccch_bursts.h
similarity index 100%
rename from include/gsm/get_bcch_or_ccch_bursts.h
rename to include/gsm/demapping/get_bcch_or_ccch_bursts.h
diff --git a/include/gsm/bursts_printer.h b/include/gsm/misc_utils/bursts_printer.h
similarity index 100%
rename from include/gsm/bursts_printer.h
rename to include/gsm/misc_utils/bursts_printer.h
diff --git a/include/gsm/controlled_const_source_f.h b/include/gsm/misc_utils/controlled_const_source_f.h
similarity index 100%
rename from include/gsm/controlled_const_source_f.h
rename to include/gsm/misc_utils/controlled_const_source_f.h
diff --git a/include/gsm/controlled_rotator_cc.h b/include/gsm/misc_utils/controlled_rotator_cc.h
similarity index 100%
rename from include/gsm/controlled_rotator_cc.h
rename to include/gsm/misc_utils/controlled_rotator_cc.h
diff --git a/include/gsm/extract_system_info.h b/include/gsm/misc_utils/extract_system_info.h
similarity index 100%
rename from include/gsm/extract_system_info.h
rename to include/gsm/misc_utils/extract_system_info.h
diff --git a/include/gsm/message_printer.h b/include/gsm/misc_utils/message_printer.h
similarity index 100%
rename from include/gsm/message_printer.h
rename to include/gsm/misc_utils/message_printer.h
diff --git a/include/gsm/receiver.h b/include/gsm/receiver/receiver.h
similarity index 99%
rename from include/gsm/receiver.h
rename to include/gsm/receiver/receiver.h
index 5aaca67..bf4580c 100644
--- a/include/gsm/receiver.h
+++ b/include/gsm/receiver/receiver.h
@@ -53,9 +53,9 @@
       virtual void set_arfcn(int arfcn) = 0;
       virtual void reset() = 0;
     };
-
+   
   } // namespace gsm
 } // namespace gr
 
 #endif /* INCLUDED_GSM_RECEIVER_H */
-
+ 
diff --git a/lib/misc_utils/controlled_const_source_f_impl.cc b/lib/misc_utils/controlled_const_source_f_impl.cc
index d58f04f..4aa2f14 100644
--- a/lib/misc_utils/controlled_const_source_f_impl.cc
+++ b/lib/misc_utils/controlled_const_source_f_impl.cc
@@ -78,8 +78,6 @@
     void controlled_const_source_f_impl::set_constant(float constant){
       d_constant = constant;
     }
-    
-
 
   } /* namespace gsm */
 } /* namespace gr */
diff --git a/lib/misc_utils/controlled_rotator_cc_impl.cc b/lib/misc_utils/controlled_rotator_cc_impl.cc
index 5877ab1..ee72a6a 100644
--- a/lib/misc_utils/controlled_rotator_cc_impl.cc
+++ b/lib/misc_utils/controlled_rotator_cc_impl.cc
@@ -83,14 +83,16 @@
         while(ii < noutput_items){
           //look for different values on phase increment control input
           if(d_phase_inc != (*pp)){
+
             set_phase_inc(*(pp));      //set new value of phase increment
             
             float freq_offset_setting = (*(pp) / (2*M_PI)) * d_samp_rate; //send stream tag with a new value of the frequency offset
-            int offset = nitems_written(0);
+
+            uint64_t offset = nitems_written(0);
             pmt::pmt_t key = pmt::string_to_symbol("setting_freq_offset");
             pmt::pmt_t value =  pmt::from_double(freq_offset_setting);
             add_item_tag(0,offset, key, value);
-            
+    
             break;
           }
           pp++;
diff --git a/lib/misc_utils/extract_system_info_impl.cc b/lib/misc_utils/extract_system_info_impl.cc
index 1d20d8d..6b6ce5f 100644
--- a/lib/misc_utils/extract_system_info_impl.cc
+++ b/lib/misc_utils/extract_system_info_impl.cc
@@ -90,7 +90,6 @@
             info.lac = (msg_elements[6]<<8)+msg_elements[7];             //wyciągnij lac
             info.mnc = (msg_elements[5]>>4);    //wyciągnij id operatora
 
-
             std::set<chan_info, compare_id>::iterator iter = d_c0_channels.find(info);
             boost::mutex::scoped_lock lock(extract_mutex);
             if(iter != d_c0_channels.end()){
@@ -178,7 +177,21 @@
     
     void extract_system_info_impl::reset()
     {
-        d_c0_channels.clear();
+        std::set<chan_info, compare_id>::iterator iter;
+        
+        chan_info info;
+
+        for(iter = d_c0_channels.begin(); iter != d_c0_channels.end(); iter++){
+            info.id = iter->id;
+            info.cell_id = iter->cell_id;             //wyciągnij cell id
+            info.lac = iter->lac;            //wyciągnij lac
+            info.mnc = iter->mnc;
+            info.pwr_db = -111;
+            d_c0_channels.erase(iter);
+            d_c0_channels.insert(info);
+        }
+//        d_c0_channels.clear();
+        
         if(!empty_p(pmt::mp("bursts"))){
             delete_head_blocking(pmt::mp("bursts"));
         }
diff --git a/lib/receiver/receiver_impl.cc b/lib/receiver/receiver_impl.cc
index a6f1a16..0917f1e 100644
--- a/lib/receiver/receiver_impl.cc
+++ b/lib/receiver/receiver_impl.cc
@@ -241,7 +241,7 @@
                     d_state = fcch_search; 
                     pmt::pmt_t msg = pmt::make_tuple(pmt::mp("freq_offset"),pmt::from_double(0.0),pmt::mp("sync_loss"));
                     message_port_pub(pmt::mp("measurements"), msg);
-                    DCOUT("Re-Synchronization!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
+                    COUT("Re-Synchronization!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
                 }
             }
         }
diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt
index 8821d2f..9814406 100644
--- a/python/CMakeLists.txt
+++ b/python/CMakeLists.txt
@@ -31,13 +31,13 @@
 GR_PYTHON_INSTALL(
     FILES
     __init__.py
-    receiver_hier.py
-    fcch_burst_tagger.py
-    sch_detector.py
-    fcch_detector.py 
-    chirpz.py
-    clock_offset_control.py 
-    clock_offset_corrector.py DESTINATION ${GR_PYTHON_DIR}/gsm
+    receiver/receiver_hier.py
+    receiver/fcch_burst_tagger.py
+    receiver/sch_detector.py
+    receiver/fcch_detector.py 
+    receiver/chirpz.py
+    receiver/clock_offset_control.py 
+    misc_utils/clock_offset_corrector.py DESTINATION ${GR_PYTHON_DIR}/gsm
 )
 
 ########################################################################
diff --git a/python/clock_offset_corrector.py b/python/misc_utils/clock_offset_corrector.py
similarity index 60%
rename from python/clock_offset_corrector.py
rename to python/misc_utils/clock_offset_corrector.py
index 4bfd773..807e6cc 100644
--- a/python/clock_offset_corrector.py
+++ b/python/misc_utils/clock_offset_corrector.py
@@ -3,7 +3,7 @@
 # Gnuradio Python Flow Graph
 # Title: Clock offset corrector
 # Author: Piotr Krysik
-# Generated: Wed Aug  6 15:49:59 2014
+# Generated: Wed Aug 13 16:43:12 2014
 ##################################################
 
 from gnuradio import blocks
@@ -15,7 +15,7 @@
 
 class clock_offset_corrector(gr.hier_block2):
 
-    def __init__(self, ppm=0, samp_rate=1625000.0/6.0*4.0, fc=936.6e6):
+    def __init__(self, fc=936.6e6, ppm=0, samp_rate_in=1625000.0/6.0*4.0, samp_rate_out=1625000.0/6.0*4.0):
         gr.hier_block2.__init__(
             self, "Clock offset corrector",
             gr.io_signature(1, 1, gr.sizeof_gr_complex*1),
@@ -25,39 +25,47 @@
         ##################################################
         # Parameters
         ##################################################
-        self.ppm = ppm
-        self.samp_rate = samp_rate
         self.fc = fc
+        self.ppm = ppm
+        self.samp_rate_in = samp_rate_in
+        self.samp_rate_out = samp_rate_out
 
         ##################################################
         # Blocks
         ##################################################
-        self.ppm_msg = None;self.message_port_register_hier_out("ppm")
-        self.gsm_controlled_rotator_cc_0 = gsm.controlled_rotator_cc(0,samp_rate)
+        self.ppm_in = None;self.message_port_register_hier_out("ppm_in")
+        self.gsm_controlled_rotator_cc_0 = gsm.controlled_rotator_cc(0,samp_rate_out)
         self.gsm_controlled_const_source_f_0 = gsm.controlled_const_source_f(ppm)
         self.fractional_resampler_xx_0 = filter.fractional_resampler_cc(0, 1)
-        self.blocks_multiply_const_vxx_0_0 = blocks.multiply_const_vff((1.0/1.0e6, ))
-        self.blocks_multiply_const_vxx_0 = blocks.multiply_const_vff((fc/samp_rate*(2*math.pi), ))
-        self.blocks_add_const_vxx_0 = blocks.add_const_vff((1, ))
+        self.blocks_multiply_const_vxx_0_0 = blocks.multiply_const_vff((1.0e-6*samp_rate_in/samp_rate_out, ))
+        self.blocks_multiply_const_vxx_0 = blocks.multiply_const_vff((fc/samp_rate_out*(2*math.pi)/1e6, ))
+        self.blocks_add_const_vxx_0 = blocks.add_const_vff((samp_rate_in/samp_rate_out, ))
 
         ##################################################
         # Connections
         ##################################################
-        self.connect((self.gsm_controlled_const_source_f_0, 0), (self.blocks_multiply_const_vxx_0_0, 0))
-        self.connect((self, 0), (self.gsm_controlled_rotator_cc_0, 0))
-        self.connect((self.blocks_multiply_const_vxx_0_0, 0), (self.blocks_multiply_const_vxx_0, 0))
         self.connect((self.blocks_add_const_vxx_0, 0), (self.fractional_resampler_xx_0, 1))
-        self.connect((self.gsm_controlled_rotator_cc_0, 0), (self.fractional_resampler_xx_0, 0))
         self.connect((self.blocks_multiply_const_vxx_0, 0), (self.gsm_controlled_rotator_cc_0, 1))
+        self.connect((self.fractional_resampler_xx_0, 0), (self.gsm_controlled_rotator_cc_0, 0))
+        self.connect((self.gsm_controlled_rotator_cc_0, 0), (self, 0))
+        self.connect((self, 0), (self.fractional_resampler_xx_0, 0))
         self.connect((self.blocks_multiply_const_vxx_0_0, 0), (self.blocks_add_const_vxx_0, 0))
-        self.connect((self.fractional_resampler_xx_0, 0), (self, 0))
+        self.connect((self.gsm_controlled_const_source_f_0, 0), (self.blocks_multiply_const_vxx_0_0, 0))
+        self.connect((self.gsm_controlled_const_source_f_0, 0), (self.blocks_multiply_const_vxx_0, 0))
 
         ##################################################
         # Asynch Message Connections
         ##################################################
-        self.msg_connect(self, "ppm", self.gsm_controlled_const_source_f_0, "constant_msg")
+        self.msg_connect(self, "ppm_in", self.gsm_controlled_const_source_f_0, "constant_msg")
 
 
+    def get_fc(self):
+        return self.fc
+
+    def set_fc(self, fc):
+        self.fc = fc
+        self.blocks_multiply_const_vxx_0.set_k((self.fc/self.samp_rate_out*(2*math.pi)/1e6, ))
+
     def get_ppm(self):
         return self.ppm
 
@@ -65,18 +73,21 @@
         self.ppm = ppm
         self.gsm_controlled_const_source_f_0.set_constant(self.ppm)
 
-    def get_samp_rate(self):
-        return self.samp_rate
+    def get_samp_rate_in(self):
+        return self.samp_rate_in
 
-    def set_samp_rate(self, samp_rate):
-        self.samp_rate = samp_rate
-        self.blocks_multiply_const_vxx_0.set_k((self.fc/self.samp_rate*(2*math.pi), ))
-        self.gsm_controlled_rotator_cc_0.set_samp_rate(self.samp_rate)
+    def set_samp_rate_in(self, samp_rate_in):
+        self.samp_rate_in = samp_rate_in
+        self.blocks_add_const_vxx_0.set_k((self.samp_rate_in/self.samp_rate_out, ))
+        self.blocks_multiply_const_vxx_0_0.set_k((1.0e-6*self.samp_rate_in/self.samp_rate_out, ))
 
-    def get_fc(self):
-        return self.fc
+    def get_samp_rate_out(self):
+        return self.samp_rate_out
 
-    def set_fc(self, fc):
-        self.fc = fc
-        self.blocks_multiply_const_vxx_0.set_k((self.fc/self.samp_rate*(2*math.pi), ))
+    def set_samp_rate_out(self, samp_rate_out):
+        self.samp_rate_out = samp_rate_out
+        self.blocks_multiply_const_vxx_0.set_k((self.fc/self.samp_rate_out*(2*math.pi)/1e6, ))
+        self.blocks_add_const_vxx_0.set_k((self.samp_rate_in/self.samp_rate_out, ))
+        self.blocks_multiply_const_vxx_0_0.set_k((1.0e-6*self.samp_rate_in/self.samp_rate_out, ))
+        self.gsm_controlled_rotator_cc_0.set_samp_rate(self.samp_rate_out)
 
diff --git a/python/chirpz.py b/python/receiver/chirpz.py
similarity index 100%
rename from python/chirpz.py
rename to python/receiver/chirpz.py
diff --git a/python/clock_offset_control.py b/python/receiver/clock_offset_control.py
similarity index 90%
rename from python/clock_offset_control.py
rename to python/receiver/clock_offset_control.py
index 0e3c621..506b0fd 100644
--- a/python/clock_offset_control.py
+++ b/python/receiver/clock_offset_control.py
@@ -30,7 +30,7 @@
     """
     def __init__(self, fc, samp_rate):
         gr.basic_block.__init__(self,
-            name="clock_offset_control",
+            name="gsm_clock_offset_control",
             in_sig=[],
             out_sig=[])
         self.fc = fc
@@ -38,12 +38,13 @@
         self.message_port_register_in(pmt.intern("measurements"))
         self.set_msg_handler(pmt.intern("measurements"), self.process_measurement)
         self.message_port_register_out(pmt.intern("ppm"))
-        self.alfa = 0.6
+        self.alfa = 0.3
         self.ppm_estimate = -1e6
         self.first_measurement = True
         self.counter = 0
         self.last_state = ""
         self.timer = Timer(0.5, self.timed_reset)
+        self.last_ppm = -1e6
         
     def process_measurement(self,msg):
         if pmt.is_tuple(msg):
@@ -75,8 +76,10 @@
                     
                     if self.counter == 5:
                         self.counter = 0
-                        msg_ppm = pmt.from_double(ppm)
-                        self.message_port_pub(pmt.intern("ppm"), msg_ppm)
+                        if abs(self.last_ppm-self.ppm_estimate) > 0.1:
+                            msg_ppm = pmt.from_double(ppm)
+                            self.message_port_pub(pmt.intern("ppm"), msg_ppm)
+                            self.last_ppm = self.ppm_estimate
                     else:
                         self.counter=self.counter+1
                 elif state == "sync_loss":
@@ -84,6 +87,7 @@
                     msg_ppm = pmt.from_double(0.0)
                     self.message_port_pub(pmt.intern("ppm"), msg_ppm)
 
+
     def timed_reset(self):
         if self.last_state != "synchronized":
 #            print "conditional reset"
diff --git a/python/fcch_burst_tagger.py b/python/receiver/fcch_burst_tagger.py
similarity index 100%
rename from python/fcch_burst_tagger.py
rename to python/receiver/fcch_burst_tagger.py
diff --git a/python/fcch_detector.py b/python/receiver/fcch_detector.py
similarity index 100%
rename from python/fcch_detector.py
rename to python/receiver/fcch_detector.py
diff --git a/python/receiver_hier.py b/python/receiver/receiver_hier.py
similarity index 97%
rename from python/receiver_hier.py
rename to python/receiver/receiver_hier.py
index 366292a..aa8fda3 100644
--- a/python/receiver_hier.py
+++ b/python/receiver/receiver_hier.py
@@ -21,7 +21,7 @@
         self.input_rate = input_rate
         self.osr = osr
         self.arfcn = arfcn
-        self.sps = input_rate / gsm_symb_rate / osr
+        self.sps = input_rate / (gsm_symb_rate * osr)
 
         #create accompaning blocks
         self.filtr = self._set_filter()
diff --git a/python/sch_detector.py b/python/receiver/sch_detector.py
similarity index 100%
rename from python/sch_detector.py
rename to python/receiver/sch_detector.py