Changed path (flow_control) and name of uplink_downlink_filter to splitter
diff --git a/grc/CMakeLists.txt b/grc/CMakeLists.txt
index 101a121..2b94539 100644
--- a/grc/CMakeLists.txt
+++ b/grc/CMakeLists.txt
@@ -24,6 +24,5 @@
 add_subdirectory(flow_control)
 add_subdirectory(misc_utils)
 install(FILES
-    gsm_block_tree.xml
-    grgsm_uplink_downlink_filter.xml DESTINATION share/gnuradio/grc/blocks
+    gsm_block_tree.xml DESTINATION share/gnuradio/grc/blocks
 )
diff --git a/grc/flow_control/CMakeLists.txt b/grc/flow_control/CMakeLists.txt
index 30ddcad..a6a7319 100644
--- a/grc/flow_control/CMakeLists.txt
+++ b/grc/flow_control/CMakeLists.txt
@@ -23,5 +23,6 @@
     gsm_burst_timeslot_filter.xml
     gsm_dummy_burst_filter.xml
     gsm_burst_sdcch_subslot_splitter.xml
-    gsm_burst_sdcch_subslot_filter.xml DESTINATION share/gnuradio/grc/blocks
+    gsm_burst_sdcch_subslot_filter.xml 
+    gsm_uplink_downlink_splitter.xml DESTINATION share/gnuradio/grc/blocks
 )
diff --git a/grc/grgsm_uplink_downlink_filter.xml b/grc/flow_control/gsm_uplink_downlink_splitter.xml
similarity index 69%
rename from grc/grgsm_uplink_downlink_filter.xml
rename to grc/flow_control/gsm_uplink_downlink_splitter.xml
index 65d852d..5c0c932 100644
--- a/grc/grgsm_uplink_downlink_filter.xml
+++ b/grc/flow_control/gsm_uplink_downlink_splitter.xml
@@ -1,10 +1,9 @@
 <?xml version="1.0"?>
 <block>
-  <name>uplink_downlink_filter</name>
-  <key>grgsm_uplink_downlink_filter</key>
-  <category>GSM</category>
+  <name>Up/Down-link splitter</name>
+  <key>gsm_uplink_downlink_splitter</key>
   <import>import grgsm</import>
-  <make>grgsm.uplink_downlink_filter()</make>
+  <make>grgsm.uplink_downlink_splitter()</make>
   <sink>
     <name>in</name>
     <type>message</type>
diff --git a/grc/gsm_block_tree.xml b/grc/gsm_block_tree.xml
index 69120f0..f9ff1ff 100644
--- a/grc/gsm_block_tree.xml
+++ b/grc/gsm_block_tree.xml
@@ -47,6 +47,7 @@
       <block>gsm_burst_sdcch_subslot_filter</block>
       <block>gsm_burst_fnr_filter</block>
       <block>gsm_dummy_burst_filter</block>
+      <block>gsm_uplink_downlink_splitter</block>
     </cat>
     <cat>
       <name>Utilities</name>
diff --git a/include/grgsm/CMakeLists.txt b/include/grgsm/CMakeLists.txt
index 61f15bf..dc9b191 100644
--- a/include/grgsm/CMakeLists.txt
+++ b/include/grgsm/CMakeLists.txt
@@ -23,8 +23,7 @@
 install(FILES
     plotting.hpp
     api.h
-    gsmtap.h
-    uplink_downlink_filter.h DESTINATION include/grgsm
+    gsmtap.h DESTINATION include/grgsm
 )
 
 add_subdirectory(decoding)
diff --git a/include/grgsm/flow_control/CMakeLists.txt b/include/grgsm/flow_control/CMakeLists.txt
index a4156a4..9c20b59 100644
--- a/include/grgsm/flow_control/CMakeLists.txt
+++ b/include/grgsm/flow_control/CMakeLists.txt
@@ -26,5 +26,6 @@
     burst_timeslot_filter.h
     burst_sdcch_subslot_filter.h
     burst_fnr_filter.h
-    dummy_burst_filter.h DESTINATION include/grgsm/flow_control
+    dummy_burst_filter.h 
+    uplink_downlink_splitter.h DESTINATION include/grgsm/flow_control
 )
diff --git a/include/grgsm/uplink_downlink_filter.h b/include/grgsm/flow_control/uplink_downlink_splitter.h
similarity index 75%
rename from include/grgsm/uplink_downlink_filter.h
rename to include/grgsm/flow_control/uplink_downlink_splitter.h
index dec4af6..c8f1321 100644
--- a/include/grgsm/uplink_downlink_filter.h
+++ b/include/grgsm/flow_control/uplink_downlink_splitter.h
@@ -21,8 +21,8 @@
  */
 
 
-#ifndef INCLUDED_GRGSM_UPLINK_DOWNLINK_FILTER_H
-#define INCLUDED_GRGSM_UPLINK_DOWNLINK_FILTER_H
+#ifndef INCLUDED_GRGSM_UPLINK_DOWNLINK_SPLITTER_H
+#define INCLUDED_GRGSM_UPLINK_DOWNLINK_SPLITTER_H
 
 #include <grgsm/api.h>
 #include <gnuradio/block.h>
@@ -35,17 +35,17 @@
      * \ingroup grgsm
      *
      */
-    class GRGSM_API uplink_downlink_filter : virtual public gr::block
+    class GRGSM_API uplink_downlink_splitter : virtual public gr::block
     {
      public:
-      typedef boost::shared_ptr<uplink_downlink_filter> sptr;
+      typedef boost::shared_ptr<uplink_downlink_splitter> sptr;
 
       /*!
-       * \brief Return a shared_ptr to a new instance of grgsm::uplink_downlink_filter.
+       * \brief Return a shared_ptr to a new instance of grgsm::uplink_downlink_splitter.
        *
-       * To avoid accidental use of raw pointers, grgsm::uplink_downlink_filter's
+       * To avoid accidental use of raw pointers, grgsm::uplink_downlink_splitter's
        * constructor is in a private implementation
-       * class. grgsm::uplink_downlink_filter::make is the public interface for
+       * class. grgsm::uplink_downlink_splitter::make is the public interface for
        * creating new instances.
        */
       static sptr make();
@@ -54,5 +54,5 @@
   } // namespace grgsm
 } // namespace gr
 
-#endif /* INCLUDED_GRGSM_UPLINK_DOWNLINK_FILTER_H */
+#endif /* INCLUDED_GRGSM_UPLINK_DOWNLINK_SPLITTER_H */
 
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index 402ad75..660bbfd 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -49,6 +49,7 @@
     flow_control/burst_sdcch_subslot_filter_impl.cc
     flow_control/burst_fnr_filter_impl.cc
     flow_control/dummy_burst_filter_impl.cc
+    flow_control/uplink_downlink_splitter_impl.cc
     misc_utils/controlled_rotator_cc_impl.cc
     misc_utils/controlled_fractional_resampler_cc_impl.cc
     misc_utils/msg_to_tag_impl.cc
@@ -66,7 +67,6 @@
     qa_utils/message_source_impl.cc
     qa_utils/message_sink_impl.cc
     decryption/decryption_impl.cc
-    uplink_downlink_filter_impl.cc
 )
 
 
diff --git a/lib/uplink_downlink_filter_impl.cc b/lib/flow_control/uplink_downlink_splitter_impl.cc
similarity index 79%
rename from lib/uplink_downlink_filter_impl.cc
rename to lib/flow_control/uplink_downlink_splitter_impl.cc
index 5dd41f2..b98102c 100644
--- a/lib/uplink_downlink_filter_impl.cc
+++ b/lib/flow_control/uplink_downlink_splitter_impl.cc
@@ -25,34 +25,34 @@
 #endif
 
 #include <gnuradio/io_signature.h>
-#include "uplink_downlink_filter_impl.h"
+#include "uplink_downlink_splitter_impl.h"
 #include <grgsm/gsmtap.h>
 #define BURST_SIZE 148
 namespace gr {
   namespace grgsm {
 
-    uplink_downlink_filter::sptr
-    uplink_downlink_filter::make()
+    uplink_downlink_splitter::sptr
+    uplink_downlink_splitter::make()
     {
       return gnuradio::get_initial_sptr
-        (new uplink_downlink_filter_impl());
+        (new uplink_downlink_splitter_impl());
     }
 
     /*
      * The private constructor
      */
-    uplink_downlink_filter_impl::uplink_downlink_filter_impl()
-      : gr::block("uplink_downlink_filter",
+    uplink_downlink_splitter_impl::uplink_downlink_splitter_impl()
+      : gr::block("uplink_downlink_splitter",
               gr::io_signature::make(0,0,0),
               gr::io_signature::make(0,0,0))
     {
         message_port_register_in(pmt::mp("in"));
         message_port_register_out(pmt::mp("uplink"));
         message_port_register_out(pmt::mp("downlink"));
-        set_msg_handler(pmt::mp("in"), boost::bind(&uplink_downlink_filter_impl::process_msg, this, _1));
+        set_msg_handler(pmt::mp("in"), boost::bind(&uplink_downlink_splitter_impl::process_msg, this, _1));
     }
 
-    void uplink_downlink_filter_impl::process_msg(pmt::pmt_t msg)
+    void uplink_downlink_splitter_impl::process_msg(pmt::pmt_t msg)
     {
         gsmtap_hdr * header = (gsmtap_hdr *)(pmt::blob_data(pmt::cdr(msg)));
         bool uplink_burst = (be16toh(header->arfcn) & 0x4000) ? true : false;
@@ -67,7 +67,7 @@
     /*
      * Our virtual destructor.
      */
-    uplink_downlink_filter_impl::~uplink_downlink_filter_impl()
+    uplink_downlink_splitter_impl::~uplink_downlink_splitter_impl()
     {
     }
   } /* namespace grgsm */
diff --git a/lib/uplink_downlink_filter_impl.h b/lib/flow_control/uplink_downlink_splitter_impl.h
similarity index 71%
rename from lib/uplink_downlink_filter_impl.h
rename to lib/flow_control/uplink_downlink_splitter_impl.h
index c510e29..bc4368a 100644
--- a/lib/uplink_downlink_filter_impl.h
+++ b/lib/flow_control/uplink_downlink_splitter_impl.h
@@ -20,24 +20,24 @@
  * 
  */
 
-#ifndef INCLUDED_GRGSM_UPLINK_DOWNLINK_FILTER_IMPL_H
-#define INCLUDED_GRGSM_UPLINK_DOWNLINK_FILTER_IMPL_H
+#ifndef INCLUDED_GRGSM_UPLINK_DOWNLINK_SPLITTER_IMPL_H
+#define INCLUDED_GRGSM_UPLINK_DOWNLINK_SPLITTER_IMPL_H
 
-#include <grgsm/uplink_downlink_filter.h>
+#include <grgsm/flow_control/uplink_downlink_splitter.h>
 
 namespace gr {
   namespace grgsm {
 
-    class uplink_downlink_filter_impl : public uplink_downlink_filter
+    class uplink_downlink_splitter_impl : public uplink_downlink_splitter
     {
      public:
-      uplink_downlink_filter_impl();
-      ~uplink_downlink_filter_impl();
+      uplink_downlink_splitter_impl();
+      ~uplink_downlink_splitter_impl();
 
       void process_msg(pmt::pmt_t msg);
     };
   } // namespace grgsm
 } // namespace gr
 
-#endif /* INCLUDED_GRGSM_UPLINK_DOWNLINK_FILTER_IMPL_H */
+#endif /* INCLUDED_GRGSM_UPLINK_DOWNLINK_SPLITTER_IMPL_H */
 
diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt
index 670391e..59fcdff 100644
--- a/python/CMakeLists.txt
+++ b/python/CMakeLists.txt
@@ -64,4 +64,4 @@
 #GR_ADD_TEST(qa_arfcn ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/qa_arfcn.py)
 #GR_ADD_TEST(qa_msg_to_tag ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/qa_msg_to_tag.py)
 #GR_ADD_TEST(qa_controlled_fractional_resampler_cc ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/qa_controlled_fractional_resampler_cc.py)
-GR_ADD_TEST(qa_uplink_downlink_filter ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/qa_uplink_downlink_filter.py)
+#GR_ADD_TEST(qa_uplink_downlink_splitter ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/qa_uplink_downlink_splitter.py)
diff --git a/python/qa_uplink_downlink_filter.py b/python/qa_uplink_downlink_splitter.py
similarity index 88%
rename from python/qa_uplink_downlink_filter.py
rename to python/qa_uplink_downlink_splitter.py
index cd310bf..1b9020f 100755
--- a/python/qa_uplink_downlink_filter.py
+++ b/python/qa_uplink_downlink_splitter.py
@@ -25,7 +25,7 @@
 from gnuradio import blocks
 import grgsm_swig as grgsm
 
-class qa_uplink_downlink_filter (gr_unittest.TestCase):
+class qa_uplink_downlink_splitter (gr_unittest.TestCase):
 
     def setUp (self):
         self.tb = gr.top_block ()
@@ -40,4 +40,4 @@
 
 
 if __name__ == '__main__':
-    gr_unittest.run(qa_uplink_downlink_filter, "qa_uplink_downlink_filter.xml")
+    gr_unittest.run(qa_uplink_downlink_splitter, "qa_uplink_downlink_splitter.xml")
diff --git a/swig/grgsm_swig.i b/swig/grgsm_swig.i
index ff6ec5c..ca987b8 100644
--- a/swig/grgsm_swig.i
+++ b/swig/grgsm_swig.i
@@ -22,6 +22,7 @@
 #include "grgsm/flow_control/burst_sdcch_subslot_filter.h"
 #include "grgsm/flow_control/burst_fnr_filter.h"
 #include "grgsm/flow_control/dummy_burst_filter.h"
+#include "grgsm/flow_control/uplink_downlink_splitter.h"
 #include "grgsm/misc_utils/bursts_printer.h"
 #include "grgsm/misc_utils/controlled_rotator_cc.h"
 #include "grgsm/misc_utils/extract_system_info.h"
@@ -38,7 +39,6 @@
 #include "grgsm/misc_utils/message_file_source.h"
 #include "grgsm/misc_utils/msg_to_tag.h"
 #include "grgsm/misc_utils/controlled_fractional_resampler_cc.h"
-#include "grgsm/uplink_downlink_filter.h"
 %}
 
 %include "grgsm/receiver/receiver.h"
@@ -73,6 +73,9 @@
 GR_SWIG_BLOCK_MAGIC2(gsm, burst_fnr_filter);
 %include "grgsm/flow_control/dummy_burst_filter.h"
 GR_SWIG_BLOCK_MAGIC2(gsm, dummy_burst_filter);
+%include "grgsm/flow_control/uplink_downlink_splitter.h"
+GR_SWIG_BLOCK_MAGIC2(grgsm, uplink_downlink_splitter);
+
 
 %include "grgsm/misc_utils/bursts_printer.h"
 GR_SWIG_BLOCK_MAGIC2(gsm, bursts_printer);
@@ -108,5 +111,3 @@
 GR_SWIG_BLOCK_MAGIC2(gsm, message_source);
 %include "grgsm/qa_utils/message_sink.h"
 GR_SWIG_BLOCK_MAGIC2(gsm, message_sink);
-%include "grgsm/uplink_downlink_filter.h"
-GR_SWIG_BLOCK_MAGIC2(grgsm, uplink_downlink_filter);