diff --git a/include/bladeRF/CMakeLists.txt b/include/bladeRF/CMakeLists.txt
index aabaf267c11ad476916305b83b788d1e62232755..5cc8c30937180c705ebf6ade28dab0f04f3bad7b 100644
--- a/include/bladeRF/CMakeLists.txt
+++ b/include/bladeRF/CMakeLists.txt
@@ -14,6 +14,6 @@ install(FILES
     pimpl.h
     ranges.h
     time_spec.h
-    source.h
+    source.h    
     sink.h DESTINATION include/bladeRF
 )
diff --git a/include/bladeRF/sink.h b/include/bladeRF/sink.h
index e3b5e9957307e87b2faf5000c0cb2a4fa7638fa9..8cc31eee1d30af58778f7d5ee5840826c8bb44e9 100644
--- a/include/bladeRF/sink.h
+++ b/include/bladeRF/sink.h
@@ -5,7 +5,7 @@
 #include <bladeRF/api.h>
 #include "ranges.h"
 #include "time_spec.h"
-#include "common_hier_block.h"
+#include <gnuradio/hier_block2.h>
 
 namespace gr {
   namespace bladeRF {
@@ -15,7 +15,7 @@ namespace gr {
      * \ingroup bladeRF
      *
      */
-    class BLADERF_API sink : virtual public common_hier_block
+    class BLADERF_API sink : virtual public gr::hier_block2
     {
      public:
       typedef std::shared_ptr<sink> sptr;
diff --git a/include/bladeRF/source.h b/include/bladeRF/source.h
index 3743c58d1e699b2cfdb7056a7f28102316e096e2..fff492921f63666a8a4314b39581eb536b99f31b 100644
--- a/include/bladeRF/source.h
+++ b/include/bladeRF/source.h
@@ -12,7 +12,6 @@
 #include <gnuradio/hier_block2.h>
 #include "ranges.h"
 #include "time_spec.h"
-#include "common_hier_block.h"
 
 namespace gr {
   namespace bladeRF {
@@ -22,7 +21,7 @@ namespace gr {
      * \ingroup bladeRF
      *
      */
-    class BLADERF_API source : virtual public common_hier_block
+    class BLADERF_API source : virtual public gr::hier_block2
     {
      public:
       typedef std::shared_ptr<source> sptr;
diff --git a/lib/common_hier_block.h b/lib/common_hier_block.h
deleted file mode 100644
index 53f0121d4a656d3c7b534dcd1b22167575fa8115..0000000000000000000000000000000000000000
--- a/lib/common_hier_block.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#pragma once
-#include <gnuradio/hier_block2.h>
-
-class common_hier_block: public gr::hier_block2
-{
-public:
-   common_hier_block(const std::string& name,
-               gr::io_signature::sptr input_signature,
-               gr::io_signature::sptr output_signature)
-               : gr::hier_block2(name, input_signature, output_signature)
-   {
-   }
-   void setup_message_ports()
-   {
-        message_port_register_hier_in(pmt::mp("pmic_in"));
-        message_port_register_hier_out(pmt::mp("pmic_out"));
-
-   }
-   template<typename T>
-   void setup_device_connects(T device)
-   {
-        msg_connect(self(), pmt::mp("pmic_in"), device, pmt::mp("pmic_in"));
-        msg_connect(device,pmt::mp("pmic_out"), self(), pmt::mp("pmic_out"));
-   }
-   
-   
-};
diff --git a/lib/sink_impl.cc b/lib/sink_impl.cc
index 9e3f3c3cc18cf8ff655f8b295b68f11a0a1982ea..b337a998b2a918e1aef091d4d53c4d2f3c7b6b40 100644
--- a/lib/sink_impl.cc
+++ b/lib/sink_impl.cc
@@ -5,7 +5,6 @@
  * SPDX-License-Identifier: GPL-3.0-or-later
  */
 
-#include "common_hier_block.h"
 #include "sink_impl.h"
 #include "arg_helpers.h"
 
@@ -22,12 +21,13 @@ namespace gr {
      * The private constructor
      */
     sink_impl::sink_impl(const std::string & args)
-      : common_hier_block("sink_impl",
+      : gr::hier_block2("sink_impl",
                         args_to_io_signature(args),
                         gr::io_signature::make(0, 0, 0))
       , sample_rate_(0)
     {
-        setup_message_ports();
+        message_port_register_hier_in(pmt::mp("pmic_in"));
+        message_port_register_hier_out(pmt::mp("pmic_out"));
 
         auto dev_list = bladerf_sink_c::get_devices();
         if(dev_list.size() == 0)
@@ -40,7 +40,8 @@ namespace gr {
             connect(self(), i, device_, i);
         }
 
-        setup_device_connects(device_);
+        msg_connect(self(), pmt::mp("pmic_in"), device_, pmt::mp("pmic_in"));
+        msg_connect(device_, pmt::mp("pmic_out"), self(), pmt::mp("pmic_out"));
     }
 
     /*
diff --git a/lib/sink_impl.h b/lib/sink_impl.h
index 535c0be030fd3be466fdb1582188c9a94ed6b724..81aae287da07b9667cd2ac0f55760415ef7ecf7a 100644
--- a/lib/sink_impl.h
+++ b/lib/sink_impl.h
@@ -22,7 +22,6 @@ namespace gr {
         channel_store<std::string> antenna_;
         channel_store<double> bandwidth_;
 
-
      public:
       sink_impl(const std::string & args);
       ~sink_impl();
diff --git a/lib/source_impl.cc b/lib/source_impl.cc
index 0fcf59c0123d24d75f8a1bb3c1565105f5c30168..2ea2ed2e0aae070a5575acafc14dd375b0421ee8 100644
--- a/lib/source_impl.cc
+++ b/lib/source_impl.cc
@@ -5,7 +5,6 @@
  * SPDX-License-Identifier: GPL-3.0-or-later
  */
 
-#include "common_hier_block.h"
 #include "source_impl.h"
 #include "arg_helpers.h"
 
@@ -21,11 +20,12 @@ namespace gr {
      * The private constructor
      */
     source_impl::source_impl(const std::string & args)
-      : common_hier_block("source",
+      : gr::hier_block2("source",
               gr::io_signature::make(0,0,0),
               args_to_io_signature(args))
     {
-        setup_message_ports();
+        message_port_register_hier_in(pmt::mp("pmic_in"));
+        message_port_register_hier_out(pmt::mp("pmic_out"));
 
         auto dev_list = bladerf_source_c::get_devices();
         if(dev_list.size() == 0)
@@ -51,7 +51,8 @@ namespace gr {
   #endif
 
         }
-        setup_device_connects(device_);
+        msg_connect(self(), pmt::mp("pmic_in"), device_, pmt::mp("pmic_in"));
+        msg_connect(device_, pmt::mp("pmic_out"), self(), pmt::mp("pmic_out"));
      }
 
     source_impl::~source_impl()
diff --git a/python/bindings/sink_python.cc b/python/bindings/sink_python.cc
index f144b0fd09a8098a04d0af082b41c0b9ce44df2c..e8c62250c1febabe049c7f07294b3b32b39b269a 100644
--- a/python/bindings/sink_python.cc
+++ b/python/bindings/sink_python.cc
@@ -14,7 +14,7 @@
 /* BINDTOOL_GEN_AUTOMATIC(0)                                                       */
 /* BINDTOOL_USE_PYGCCXML(0)                                                        */
 /* BINDTOOL_HEADER_FILE(sink.h)                                        */
-/* BINDTOOL_HEADER_FILE_HASH(2ab4178636b0828c83826fb6420afc7b)                     */
+/* BINDTOOL_HEADER_FILE_HASH(5c531e3e1b40d852b4c20862cd23bee4)                     */
 /***********************************************************************************/
 
 #include <pybind11/complex.h>