diff --git a/grc/misc_utils/gsm_burst_to_fn_time.xml b/grc/misc_utils/gsm_burst_to_fn_time.xml
index 0471605..fb98db6 100644
--- a/grc/misc_utils/gsm_burst_to_fn_time.xml
+++ b/grc/misc_utils/gsm_burst_to_fn_time.xml
@@ -1,19 +1,17 @@
 <?xml version="1.0"?>
 <block>
-  <name>Burst to fn_time</name>
+  <name>Burst to FN time</name>
   <key>gsm_burst_to_fn_time</key>
   <import>import grgsm</import>
-  <make>grgsm.burst_to_fn_time()</make>
+  <make>grgsm.gsm_burst_to_fn_time()</make>
 
   <sink>
     <name>bursts_in</name>
     <type>message</type>
-    <optional>1</optional>
   </sink>
 
   <source>
     <name>fn_time_out</name>
     <type>message</type>
-    <optional>1</optional>
   </source>
 </block>
diff --git a/include/grgsm/misc_utils/CMakeLists.txt b/include/grgsm/misc_utils/CMakeLists.txt
index 8ac1f52..5ff1960 100644
--- a/include/grgsm/misc_utils/CMakeLists.txt
+++ b/include/grgsm/misc_utils/CMakeLists.txt
@@ -35,6 +35,7 @@
     tmsi_dumper.h
     msg_to_tag.h
     trx_burst_if.h
+    burst_to_fn_time.h
     controlled_fractional_resampler_cc.h 
     time_spec.h
     fn_time.h DESTINATION include/grgsm/misc_utils
diff --git a/include/grgsm/misc_utils/burst_to_fn_time.h b/include/grgsm/misc_utils/burst_to_fn_time.h
new file mode 100644
index 0000000..870bd83
--- /dev/null
+++ b/include/grgsm/misc_utils/burst_to_fn_time.h
@@ -0,0 +1,57 @@
+/* -*- c++ -*- */
+/* @file
+ * @author Piotr Krysik <ptrkrysik@gmail.com>
+ * @author Vadim Yanitskiy <axilirator@gmail.com>
+ * @section LICENSE
+ *
+ * Gr-gsm is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3, or (at your option)
+ * any later version.
+ *
+ * Gr-gsm is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gr-gsm; see the file COPYING.  If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street,
+ * Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef INCLUDED_GRGSM_BURST_TO_FN_TIME_H
+#define INCLUDED_GRGSM_BURST_TO_FN_TIME_H
+
+#include <grgsm/api.h>
+#include <gnuradio/block.h>
+
+namespace gr {
+  namespace gsm {
+
+    /*!
+     * \brief <+description of block+>
+     * \ingroup gsm
+     *
+     */
+    class GRGSM_API burst_to_fn_time : virtual public gr::block
+    {
+     public:
+      typedef boost::shared_ptr<burst_to_fn_time> sptr;
+
+      /*!
+       * \brief Return a shared_ptr to a new instance of grgsm::burst_to_fn_time.
+       *
+       * To avoid accidental use of raw pointers, grgsm::burst_to_fn_time's
+       * constructor is in a private implementation
+       * class. grgsm::burst_to_fn_time::make is the public interface for
+       * creating new instances.
+       */
+      static sptr make();
+    };
+
+  } // namespace gsm
+} // namespace gr
+
+#endif /* INCLUDED_GRGSM_BURST_TO_FN_TIME_H */
diff --git a/lib/misc_utils/CMakeLists.txt b/lib/misc_utils/CMakeLists.txt
index 370f11c..c3edde5 100644
--- a/lib/misc_utils/CMakeLists.txt
+++ b/lib/misc_utils/CMakeLists.txt
@@ -36,5 +36,6 @@
     fn_time.cc
     udp_socket.cc
     trx_burst_if_impl.cc
+    burst_to_fn_time_impl.cc
 )
 
diff --git a/lib/misc_utils/burst_to_fn_time_impl.cc b/lib/misc_utils/burst_to_fn_time_impl.cc
new file mode 100644
index 0000000..3e587f0
--- /dev/null
+++ b/lib/misc_utils/burst_to_fn_time_impl.cc
@@ -0,0 +1,84 @@
+/* -*- c++ -*- */
+/* @file
+ * @author Piotr Krysik <ptrkrysik@gmail.com>
+ * @author Vadim Yanitskiy <axilirator@gmail.com>
+ * @section LICENSE
+ *
+ * Gr-gsm is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3, or (at your option)
+ * any later version.
+ *
+ * Gr-gsm is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gr-gsm; see the file COPYING.  If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street,
+ * Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <gnuradio/io_signature.h>
+#include "burst_to_fn_time_impl.h"
+
+namespace gr {
+  namespace gsm {
+
+    burst_to_fn_time::sptr
+    burst_to_fn_time::make(void)
+    {
+      return gnuradio::get_initial_sptr
+        (new burst_to_fn_time_impl());
+    }
+
+    /*
+     * The private constructor
+     */
+    burst_to_fn_time_impl::burst_to_fn_time_impl(void)
+      : gr::block("burst_to_fn_time",
+        gr::io_signature::make(0, 0, 0),
+        gr::io_signature::make(0, 0, 0))
+    {
+        // Register I/O ports
+        message_port_register_in(pmt::mp("bursts_in"));
+        message_port_register_out(pmt::mp("fn_time_out"));
+
+        // Bind a port handler
+        set_msg_handler(pmt::mp("bursts_in"),
+          boost::bind(&burst_to_fn_time_impl::handle_burst, this, _1));
+    }
+
+    /*
+     * Our virtual destructor.
+     */
+    burst_to_fn_time_impl::~burst_to_fn_time_impl()
+    {
+    }
+
+    void
+    burst_to_fn_time_impl::handle_burst(pmt::pmt_t msg_in)
+    {
+      // Obtain fn_time tag from message
+      pmt::pmt_t blob = pmt::car(msg_in);
+      pmt::pmt_t fn_time = pmt::dict_ref(blob,
+        pmt::intern("fn_time"), pmt::PMT_NIL);
+
+      // Drop messages without required tag
+      if (fn_time == pmt::PMT_NIL)
+        return;
+
+      // Compose and send a new message
+      pmt::pmt_t msg_out = pmt::dict_add(pmt::make_dict(),
+        pmt::intern("fn_time"), fn_time);
+      message_port_pub(pmt::mp("fn_time_out"), msg_out);
+    }
+
+  } /* namespace gsm */
+} /* namespace gr */
diff --git a/lib/misc_utils/burst_to_fn_time_impl.h b/lib/misc_utils/burst_to_fn_time_impl.h
new file mode 100644
index 0000000..e96c2bb
--- /dev/null
+++ b/lib/misc_utils/burst_to_fn_time_impl.h
@@ -0,0 +1,45 @@
+/* -*- c++ -*- */
+/* @file
+ * @author Piotr Krysik <ptrkrysik@gmail.com>
+ * @author Vadim Yanitskiy <axilirator@gmail.com>
+ * @section LICENSE
+ *
+ * Gr-gsm is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3, or (at your option)
+ * any later version.
+ *
+ * Gr-gsm is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gr-gsm; see the file COPYING.  If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street,
+ * Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef INCLUDED_GRGSM_BURST_TO_FN_TIME_IMPL_H
+#define INCLUDED_GRGSM_BURST_TO_FN_TIME_IMPL_H
+
+#include <grgsm/misc_utils/burst_to_fn_time.h>
+
+namespace gr {
+  namespace gsm {
+
+    class burst_to_fn_time_impl : public burst_to_fn_time
+    {
+     private:
+      void handle_burst(pmt::pmt_t msg_in);
+
+     public:
+      burst_to_fn_time_impl(void);
+      ~burst_to_fn_time_impl(void);
+    };
+
+  } // namespace gsm
+} // namespace gr
+
+#endif /* INCLUDED_GRGSM_BURST_TO_FN_TIME_IMPL_H */
diff --git a/python/__init__.py b/python/__init__.py
index b3c9768..ad551ac 100644
--- a/python/__init__.py
+++ b/python/__init__.py
@@ -58,7 +58,6 @@
 from gsm_gmsk_mod import gsm_gmsk_mod
 from fn_time import *
 from txtime_bursts_tagger import *
-from burst_to_fn_time import *
 import arfcn
 
 
diff --git a/python/misc_utils/CMakeLists.txt b/python/misc_utils/CMakeLists.txt
index 8c7c175..ec732a4 100644
--- a/python/misc_utils/CMakeLists.txt
+++ b/python/misc_utils/CMakeLists.txt
@@ -23,6 +23,5 @@
     clock_offset_corrector_tagged.py
     hier_block.py 
     fn_time.py
-    burst_to_fn_time.py
     DESTINATION ${GR_PYTHON_DIR}/grgsm
 )
diff --git a/python/misc_utils/burst_to_fn_time.py b/python/misc_utils/burst_to_fn_time.py
deleted file mode 100644
index e31cf92..0000000
--- a/python/misc_utils/burst_to_fn_time.py
+++ /dev/null
@@ -1,28 +0,0 @@
-"""
-Embedded Python Blocks:
-
-Each this file is saved, GRC will instantiate the first class it finds to get
-ports and parameters of your block. The arguments to __init__  will be the
-parameters. All of them are required to have default values!
-"""
-import numpy as np
-from gnuradio import gr
-import pmt
-
-class burst_to_fn_time(gr.basic_block):
-    def __init__(self):  # only default arguments here
-        gr.basic_block.__init__(
-            self,
-            name='Burst to fn_time',
-            in_sig=[],
-            out_sig=[]
-        )
-        self.message_port_register_in(pmt.intern("bursts_in"))
-        self.message_port_register_out(pmt.intern("fn_time_out"))
-        self.set_msg_handler(pmt.intern("bursts_in"), self.convert)
-    
-    def convert(self, msg):
-        fn_time = pmt.dict_ref(pmt.car(msg),pmt.intern("fn_time"),pmt.PMT_NIL)
-        fn_time_msg = pmt.dict_add(pmt.make_dict(), pmt.intern("fn_time"), fn_time)
-        if pmt.to_python(fn_time) is not None:
-            self.message_port_pub(pmt.intern("fn_time_out"), fn_time_msg)
diff --git a/swig/grgsm_swig.i b/swig/grgsm_swig.i
index 005033f..17ed130 100644
--- a/swig/grgsm_swig.i
+++ b/swig/grgsm_swig.i
@@ -74,6 +74,7 @@
 #include "grgsm/transmitter/preprocess_tx_burst.h"
 #include "grgsm/transmitter/gen_test_ab.h"
 #include "grgsm/misc_utils/trx_burst_if.h"
+#include "grgsm/misc_utils/burst_to_fn_time.h"
 %}
 
 %include "constants.i"
@@ -177,14 +178,14 @@
 //};
 
 %include "grgsm/misc_utils/fn_time.h"
-
 %include "grgsm/transmitter/txtime_setter.h"
 GR_SWIG_BLOCK_MAGIC2(gsm, txtime_setter);
 %include "grgsm/transmitter/preprocess_tx_burst.h"
 GR_SWIG_BLOCK_MAGIC2(gsm, preprocess_tx_burst);
-
 %include "grgsm/transmitter/gen_test_ab.h"
 GR_SWIG_BLOCK_MAGIC2(gsm, gen_test_ab);
 
 %include "grgsm/misc_utils/trx_burst_if.h"
 GR_SWIG_BLOCK_MAGIC2(gsm, trx_burst_if);
+%include "grgsm/misc_utils/burst_to_fn_time.h"
+GR_SWIG_BLOCK_MAGIC2(gsm, burst_to_fn_time);
