diff --git a/python/trx/radio_if.py b/python/trx/radio_if.py
index 1ded337..f84a710 100644
--- a/python/trx/radio_if.py
+++ b/python/trx/radio_if.py
@@ -39,24 +39,6 @@
 
 
 # HACK: should be implemented in C++!
-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)
-
 class dict_toggle_sign(gr.basic_block):
     def __init__(self):  # only default arguments here
         gr.basic_block.__init__(self,
@@ -227,7 +209,7 @@
 
 		# RX & TX synchronization
 		self.bt_filter = grgsm.burst_type_filter([3])
-		self.burst_to_fn_time = burst_to_fn_time()
+		self.burst_to_fn_time = grgsm.burst_to_fn_time()
 
 		# Connections
 		self.msg_connect(
