diff --git a/CMakeLists.txt b/CMakeLists.txt
index 824108d..facc660 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -57,7 +57,7 @@ set(Boost_ADDITIONAL_VERSIONS
     "1.60.0" "1.60" "1.61.0" "1.61" "1.62.0" "1.62" "1.63.0" "1.63" "1.64.0" "1.64"
     "1.65.0" "1.65" "1.66.0" "1.66" "1.67.0" "1.67" "1.68.0" "1.68" "1.69.0" "1.69"
 )
-find_package(Boost "1.35" COMPONENTS filesystem system)
+find_package(Boost "1.35" COMPONENTS filesystem system thread)
 
 if(NOT Boost_FOUND)
     message(FATAL_ERROR "Boost required to compile ofdm")
@@ -83,9 +83,8 @@ set(GRC_BLOCKS_DIR      ${GR_PKG_DATA_DIR}/grc/blocks)
 ########################################################################
 # Find gnuradio build dependencies
 ########################################################################
-#find_package(GnuradioRuntime)
 find_package(CppUnit)
-#find_package(GnuradioFFT)
+find_package(Volk)
 
 # To run a more advanced search for GNU Radio and it's components and
 # versions, use the following. Add any components required to the list
@@ -107,6 +106,9 @@ endif()
 if(NOT GNURADIO_BLOCKS_FOUND)
     message(FATAL_ERROR "GnuRadio Blocks required to compile ofdm")
 endif()
+if(NOT VOLK_FOUND)
+    message(FATAL_ERROR "Volk required to compile ofdm")
+endif()
 
 
 ########################################################################
diff --git a/apps/CMakeLists.txt b/apps/CMakeLists.txt
index a542d59..15b0430 100644
--- a/apps/CMakeLists.txt
+++ b/apps/CMakeLists.txt
@@ -24,7 +24,8 @@ GR_PYTHON_INSTALL(
     gui/ofdm_rx_gui.py
     gui/ofdm_mrrc_rx_gui.py
     gui/ofdm_tx_gui.py
-    DESTINATION bin
+    DESTINATION
+    ${CMAKE_INSTALL_PREFIX}/share/gnuradio/examples/ofdm
 )
 
 install(
@@ -38,7 +39,8 @@ install(
     run_usrp_tx.sh
     run_test_demapper_fbmc.sh
     run_grc.sh
-    DESTINATION bin
+    DESTINATION
+    ${CMAKE_INSTALL_PREFIX}/share/gnuradio/examples/ofdm
 )
 
 install(
@@ -48,5 +50,59 @@ install(
     gui/ofdm_rx_gui_window.ui
     gui/ofdm_mrrc_rx_gui_window.ui
     gui/ofdm_tx_gui_window.ui
-    DESTINATION bin
+    DESTINATION
+    ${CMAKE_INSTALL_PREFIX}/share/gnuradio/examples/ofdm
+)
+
+install(
+    FILES
+    grc/demo.grc
+    grc/demo_1tap.grc
+    grc/demo_1zero.grc
+    grc/demo_1zero_rep.grc
+    grc/demo_1zero_rep_1tap.grc
+    grc/demo_2zero.grc
+    grc/demo_3tap.grc
+    grc/demo_onlyawgn.grc
+    grc/fbmc_inner_receiver.grc
+    grc/fbmc_main.grc
+    grc/fbmc_main_coding.grc
+    grc/fbmc_main_masking_after_fft.grc
+    grc/fbmc_multiuser_debug.grc
+    grc/fbmc_multiuser_scenario.grc
+    grc/fbmc_snr_estimator.grc
+    grc/fbmc_with_extended_fft.grc
+    grc/fbmc_with_hier_blocks.grc
+    grc/paper_tigr_fbmc_inner_receiver.grc
+    grc/paper_tigr_fbmc_inner_receiver2.grc
+    grc/paper_tigr_fbmc_uncoded_transceiver.grc
+    grc/paper_tigr_ofdm_inner_receiver.grc
+    grc/paper_tigr_ofdm_uncoded_transceiver.grc
+    grc/scfdma_receiver_chain.grc
+    grc/scfdma_transmitter_chain.grc
+    grc/scfdma_with_hier_blocks.grc
+    grc/sync_simple.grc
+    grc/test1.grc
+    grc/tigr_ber_measurement.grc
+    grc/tigr_fbmc_coded_transceiver.grc
+    grc/tigr_fbmc_coded_usrp_rx.grc
+    grc/tigr_fbmc_inner_receiver.grc
+    grc/tigr_fbmc_snr_estimator.grc
+    grc/tigr_fbmc_transceiver.grc
+    grc/tigr_fbmc_uncoded_transceiver.grc
+    grc/tigr_fbmc_uncoded_usrp_rx.grc
+    grc/tigr_fbmc_usrp_tx.grc
+    grc/tigr_ofdm_coded_transceiver.grc
+    grc/tigr_ofdm_coded_usrp_rx.grc
+    grc/tigr_ofdm_inner_receiver.grc
+    grc/tigr_ofdm_snr_estimator.grc
+    grc/tigr_ofdm_uncoded_transceiver.grc
+    grc/tigr_ofdm_uncoded_usrp_rx.grc
+    grc/tigr_ofdm_usrp_tx.grc
+    grc/tigr_scatterplot.grc
+    grc/tigr_test_demapper.grc
+    grc/tigr_transmit_control.grc
+    grc/transmit_control.grc
+    DESTINATION
+    ${CMAKE_INSTALL_PREFIX}/share/gnuradio/examples/ofdm/grc
 )
diff --git a/apps/environment_lab b/apps/environment_lab
index 547a0f2..b3692c4 100644
--- a/apps/environment_lab
+++ b/apps/environment_lab
@@ -1,11 +1,9 @@
-#Gnuradio
-export GNURADIO_DIR=/opt/gnuradio-3.7.7/
-export UHD_DIR=/opt/gnuradio-3.7.7/uhd_030901/
-export GROFDM_DIR=/opt/gr-ofdm/
-
-export PATH=$GROFDM_DIR/bin/:$UHD_DIR/bin:$GNURADIO_DIR/bin:$PATH
-export LD_LIBRARY_PATH=$GROFDM_DIR/lib/:$UHD_DIR/lib/:$GNURADIO_DIR/lib:$LD_LIBRARY_PATH
-export PYTHONPATH=$GROFDM_DIR/lib/python2.7/dist-packages/:$GNURADIO_DIR/lib/python2.7/dist-packages/:$PYTHONPATH
-export PKG_CONFIG_PATH=$GNURADIO_DIR/lib/pkgconfig:$PKG_CONFIG_PATH
-
-
+# Gnuradio
+# export GNURADIO_DIR=/opt/gnuradio-3.7.7/
+# export UHD_DIR=/opt/gnuradio-3.7.7/uhd_030901/
+# export GROFDM_DIR=/opt/gr-ofdm/
+# 
+# export PATH=$GROFDM_DIR/bin/:$UHD_DIR/bin:$GNURADIO_DIR/bin:$PATH
+# export LD_LIBRARY_PATH=$GROFDM_DIR/lib/:$UHD_DIR/lib/:$GNURADIO_DIR/lib:$LD_LIBRARY_PATH
+# export PYTHONPATH=$GROFDM_DIR/lib/python2.7/dist-packages/:$GNURADIO_DIR/lib/python2.7/dist-packages/:$PYTHONPATH
+# export PKG_CONFIG_PATH=$GNURADIO_DIR/lib/pkgconfig:$PKG_CONFIG_PATH
diff --git a/apps/environment_release b/apps/environment_release
index 7951c4f..91ede47 100755
--- a/apps/environment_release
+++ b/apps/environment_release
@@ -1,3 +1,3 @@
-export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"$PWD/../lib"
-export PYTHONPATH=$PYTHONPATH:"$PWD/../lib/python2.7/dist-packages:$PWD/../lib/python2.7/dist-packages/ofdm"
-export PATH=$PATH:"$PWD"
+# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"$PWD/../lib"
+# export PYTHONPATH=$PYTHONPATH:"$PWD/../lib/python2.7/dist-packages:$PWD/../lib/python2.7/dist-packages/ofdm"
+# export PATH=$PATH:"$PWD"
diff --git a/apps/grc/demo.grc b/apps/grc/demo.grc
index 7738da1..237265c 100644
--- a/apps/grc/demo.grc
+++ b/apps/grc/demo.grc
@@ -1340,7 +1340,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>alias</key>
@@ -1415,7 +1415,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>sel_eq</key>
@@ -1549,7 +1549,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>alias</key>
diff --git a/apps/grc/demo_1tap.grc b/apps/grc/demo_1tap.grc
index e450fc7..74945f9 100644
--- a/apps/grc/demo_1tap.grc
+++ b/apps/grc/demo_1tap.grc
@@ -461,7 +461,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>alias</key>
@@ -1106,7 +1106,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>alias</key>
@@ -1545,7 +1545,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>sel_eq</key>
diff --git a/apps/grc/demo_1zero.grc b/apps/grc/demo_1zero.grc
index f623680..058c73d 100644
--- a/apps/grc/demo_1zero.grc
+++ b/apps/grc/demo_1zero.grc
@@ -1066,7 +1066,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>alias</key>
@@ -1141,7 +1141,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>sel_eq</key>
@@ -1322,7 +1322,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>alias</key>
diff --git a/apps/grc/demo_1zero_rep.grc b/apps/grc/demo_1zero_rep.grc
index 3e6934a..34ecf1a 100644
--- a/apps/grc/demo_1zero_rep.grc
+++ b/apps/grc/demo_1zero_rep.grc
@@ -1082,7 +1082,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>alias</key>
@@ -1157,7 +1157,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>sel_eq</key>
@@ -1236,7 +1236,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>alias</key>
diff --git a/apps/grc/demo_1zero_rep_1tap.grc b/apps/grc/demo_1zero_rep_1tap.grc
index 2414057..ad1ec27 100644
--- a/apps/grc/demo_1zero_rep_1tap.grc
+++ b/apps/grc/demo_1zero_rep_1tap.grc
@@ -49,7 +49,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>alias</key>
@@ -1137,7 +1137,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>alias</key>
@@ -1275,7 +1275,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>sel_eq</key>
diff --git a/apps/grc/demo_2zero.grc b/apps/grc/demo_2zero.grc
index 10bdaab..ca1d205 100644
--- a/apps/grc/demo_2zero.grc
+++ b/apps/grc/demo_2zero.grc
@@ -582,7 +582,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>alias</key>
@@ -1419,7 +1419,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>alias</key>
@@ -1545,7 +1545,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>sel_eq</key>
diff --git a/apps/grc/demo_3tap.grc b/apps/grc/demo_3tap.grc
index ee9b076..6ef2484 100644
--- a/apps/grc/demo_3tap.grc
+++ b/apps/grc/demo_3tap.grc
@@ -995,7 +995,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>alias</key>
@@ -1070,7 +1070,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>sel_eq</key>
@@ -1337,7 +1337,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>alias</key>
diff --git a/apps/grc/demo_onlyawgn.grc b/apps/grc/demo_onlyawgn.grc
index e8ed69b..ea5037b 100644
--- a/apps/grc/demo_onlyawgn.grc
+++ b/apps/grc/demo_onlyawgn.grc
@@ -913,7 +913,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>alias</key>
@@ -988,7 +988,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>alias</key>
@@ -1063,7 +1063,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>sel_eq</key>
diff --git a/apps/grc/fbmc_inner_receiver.grc b/apps/grc/fbmc_inner_receiver.grc
index 930538e..3402c43 100644
--- a/apps/grc/fbmc_inner_receiver.grc
+++ b/apps/grc/fbmc_inner_receiver.grc
@@ -1505,7 +1505,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>1</value>
+      <value>True</value>
     </param>
     <param>
       <key>sel_eq</key>
diff --git a/apps/grc/fbmc_main.grc b/apps/grc/fbmc_main.grc
index eea9c0e..1efb49d 100644
--- a/apps/grc/fbmc_main.grc
+++ b/apps/grc/fbmc_main.grc
@@ -1888,7 +1888,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>1</value>
+      <value>True</value>
     </param>
     <param>
       <key>alias</key>
@@ -1943,7 +1943,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>1</value>
+      <value>True</value>
     </param>
     <param>
       <key>sel_eq</key>
@@ -2635,7 +2635,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>1</value>
+      <value>True</value>
     </param>
     <param>
       <key>alias</key>
@@ -2690,7 +2690,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>1</value>
+      <value>True</value>
     </param>
     <param>
       <key>alias</key>
diff --git a/apps/grc/fbmc_main_coding.grc b/apps/grc/fbmc_main_coding.grc
index 6053b95..900e4c1 100644
--- a/apps/grc/fbmc_main_coding.grc
+++ b/apps/grc/fbmc_main_coding.grc
@@ -2454,7 +2454,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>1</value>
+      <value>True</value>
     </param>
     <param>
       <key>alias</key>
@@ -2509,7 +2509,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>1</value>
+      <value>True</value>
     </param>
     <param>
       <key>alias</key>
@@ -2564,7 +2564,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>1</value>
+      <value>True</value>
     </param>
     <param>
       <key>sel_eq</key>
@@ -2623,7 +2623,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>1</value>
+      <value>True</value>
     </param>
     <param>
       <key>alias</key>
diff --git a/apps/grc/fbmc_main_masking_after_fft.grc b/apps/grc/fbmc_main_masking_after_fft.grc
index 47e5c90..0f9b403 100644
--- a/apps/grc/fbmc_main_masking_after_fft.grc
+++ b/apps/grc/fbmc_main_masking_after_fft.grc
@@ -2596,7 +2596,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>alias</key>
@@ -2910,7 +2910,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>sel_eq</key>
@@ -3212,7 +3212,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>alias</key>
@@ -3530,7 +3530,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>alias</key>
diff --git a/apps/grc/fbmc_multiuser_debug.grc b/apps/grc/fbmc_multiuser_debug.grc
index 966d999..c4421d6 100644
--- a/apps/grc/fbmc_multiuser_debug.grc
+++ b/apps/grc/fbmc_multiuser_debug.grc
@@ -2856,7 +2856,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>1</value>
+      <value>True</value>
     </param>
     <param>
       <key>alias</key>
@@ -3323,7 +3323,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>1</value>
+      <value>True</value>
     </param>
     <param>
       <key>sel_eq</key>
@@ -3788,7 +3788,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>1</value>
+      <value>True</value>
     </param>
     <param>
       <key>alias</key>
@@ -3977,7 +3977,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>1</value>
+      <value>True</value>
     </param>
     <param>
       <key>alias</key>
diff --git a/apps/grc/fbmc_multiuser_scenario.grc b/apps/grc/fbmc_multiuser_scenario.grc
index 3a59f98..dbbe3d2 100644
--- a/apps/grc/fbmc_multiuser_scenario.grc
+++ b/apps/grc/fbmc_multiuser_scenario.grc
@@ -2246,7 +2246,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>sel_eq</key>
@@ -2372,7 +2372,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>alias</key>
@@ -2451,7 +2451,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>alias</key>
@@ -2620,7 +2620,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>alias</key>
@@ -2699,7 +2699,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>alias</key>
@@ -2979,7 +2979,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>0</value>
+      <value>False</value>
     </param>
     <param>
       <key>sel_eq</key>
diff --git a/apps/grc/fbmc_with_hier_blocks.grc b/apps/grc/fbmc_with_hier_blocks.grc
index ce05376..5c6fd24 100644
--- a/apps/grc/fbmc_with_hier_blocks.grc
+++ b/apps/grc/fbmc_with_hier_blocks.grc
@@ -543,7 +543,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>1</value>
+      <value>True</value>
     </param>
     <param>
       <key>sel_eq</key>
@@ -787,7 +787,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>1</value>
+      <value>True</value>
     </param>
     <param>
       <key>alias</key>
@@ -1089,7 +1089,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>1</value>
+      <value>True</value>
     </param>
     <param>
       <key>alias</key>
diff --git a/apps/grc/paper_tigr_fbmc_inner_receiver.grc b/apps/grc/paper_tigr_fbmc_inner_receiver.grc
index bacea03..2027375 100644
--- a/apps/grc/paper_tigr_fbmc_inner_receiver.grc
+++ b/apps/grc/paper_tigr_fbmc_inner_receiver.grc
@@ -884,7 +884,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>1</value>
+      <value>True</value>
     </param>
     <param>
       <key>sel_eq</key>
diff --git a/apps/grc/paper_tigr_fbmc_inner_receiver2.grc b/apps/grc/paper_tigr_fbmc_inner_receiver2.grc
index c79a0ff..b1aa889 100644
--- a/apps/grc/paper_tigr_fbmc_inner_receiver2.grc
+++ b/apps/grc/paper_tigr_fbmc_inner_receiver2.grc
@@ -845,7 +845,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>1</value>
+      <value>True</value>
     </param>
     <param>
       <key>sel_eq</key>
diff --git a/apps/grc/paper_tigr_fbmc_uncoded_transceiver.grc b/apps/grc/paper_tigr_fbmc_uncoded_transceiver.grc
index 4cd0ee6..87fe708 100644
--- a/apps/grc/paper_tigr_fbmc_uncoded_transceiver.grc
+++ b/apps/grc/paper_tigr_fbmc_uncoded_transceiver.grc
@@ -2378,7 +2378,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>1</value>
+      <value>True</value>
     </param>
     <param>
       <key>alias</key>
diff --git a/apps/grc/tigr_fbmc_coded_transceiver.grc b/apps/grc/tigr_fbmc_coded_transceiver.grc
index 20e774a..5a192c6 100644
--- a/apps/grc/tigr_fbmc_coded_transceiver.grc
+++ b/apps/grc/tigr_fbmc_coded_transceiver.grc
@@ -2806,7 +2806,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>1</value>
+      <value>True</value>
     </param>
     <param>
       <key>alias</key>
diff --git a/apps/grc/tigr_fbmc_inner_receiver.grc b/apps/grc/tigr_fbmc_inner_receiver.grc
index b34fc83..3d9ec66 100644
--- a/apps/grc/tigr_fbmc_inner_receiver.grc
+++ b/apps/grc/tigr_fbmc_inner_receiver.grc
@@ -2204,7 +2204,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>1</value>
+      <value>True</value>
     </param>
     <param>
       <key>sel_eq</key>
diff --git a/apps/grc/tigr_fbmc_transceiver.grc b/apps/grc/tigr_fbmc_transceiver.grc
index d5e8a2b..9099393 100644
--- a/apps/grc/tigr_fbmc_transceiver.grc
+++ b/apps/grc/tigr_fbmc_transceiver.grc
@@ -2269,7 +2269,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>1</value>
+      <value>True</value>
     </param>
     <param>
       <key>alias</key>
diff --git a/apps/grc/tigr_fbmc_uncoded_transceiver.grc b/apps/grc/tigr_fbmc_uncoded_transceiver.grc
index ac246f8..10f7019 100644
--- a/apps/grc/tigr_fbmc_uncoded_transceiver.grc
+++ b/apps/grc/tigr_fbmc_uncoded_transceiver.grc
@@ -2233,7 +2233,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>1</value>
+      <value>True</value>
     </param>
     <param>
       <key>alias</key>
diff --git a/apps/grc/tigr_fbmc_usrp_tx.grc b/apps/grc/tigr_fbmc_usrp_tx.grc
index 5504f53..f11cc61 100644
--- a/apps/grc/tigr_fbmc_usrp_tx.grc
+++ b/apps/grc/tigr_fbmc_usrp_tx.grc
@@ -1367,7 +1367,7 @@
     </param>
     <param>
       <key>extra_pad</key>
-      <value>1</value>
+      <value>True</value>
     </param>
     <param>
       <key>alias</key>
diff --git a/cmake/Modules/FindITPP.cmake b/cmake/Modules/FindITPP.cmake
index f4a0540..1f09141 100644
--- a/cmake/Modules/FindITPP.cmake
+++ b/cmake/Modules/FindITPP.cmake
@@ -7,25 +7,13 @@
 # also defined, but not for general use are
 #  ITPP_LIBRARY, where to find the ITPP library.
 
-#MESSAGE("ITPP_DIR set to ${ITPP_DIR}" )
-
 FIND_PATH(ITPP_INCLUDE_DIR itpp/itbase.h
-    ${ITPP_DIR}
-    /usr/pkgs64/include
-    /usr/include
-    NO_DEFAULT_PATH
+    ${ITPP_DIR}/include
     )
 
 FIND_LIBRARY(ITPP_LIBRARY
-    NAMES itpp #itpp_debug
+    NAMES itpp
     PATHS ${ITPP_DIR}/libs
-    ${ITPP_DIR}/itpp/.libs/
-    "${ITPP_DIR}\\win32\\lib"
-    /usr/lib/x86_64-linux-gnu
-    /usr/pkgs64/lib
-    /usr/lib64
-    /usr/lib
-    NO_DEFAULT_PATH
     )
 
 IF (ITPP_LIBRARY AND ITPP_INCLUDE_DIR)
@@ -35,7 +23,6 @@ ELSE (ITPP_LIBRARY AND ITPP_INCLUDE_DIR)
     SET(ITPP_FOUND "NO")
 ENDIF (ITPP_LIBRARY AND ITPP_INCLUDE_DIR)
 
-
 IF (ITPP_FOUND)
     IF (NOT ITPP_FIND_QUIETLY)
         MESSAGE(STATUS "Found ITPP: ${ITPP_LIBRARIES}")
diff --git a/grc/CMakeLists.txt b/grc/CMakeLists.txt
index bdef4eb..3314c1a 100644
--- a/grc/CMakeLists.txt
+++ b/grc/CMakeLists.txt
@@ -17,92 +17,134 @@
 # the Free Software Foundation, Inc., 51 Franklin Street,
 # Boston, MA 02110-1301, USA.
 install(FILES
-    ofdm_uhd_transmitter.xml
-    ofdm_ofdm_pilot_block_inserter.xml
-    ofdm_fbmc_snr_filter.xml
-    ofdm_snr_filter.xml
-    ofdm_scatterplot_subcarrier_filter.xml
-    ofdm_fbmc_rms_amplifier.xml
-    ofdm_fbmc_snr_estimator.xml
-    ofdm_fbmc_postprocess_CTF_estimate.xml
-    ofdm_pilot_block_filter.xml
-    ofdm_frame_sampler.xml
-    ofdm_fbmc_frame_sampler.xml
-    ofdm_fbmc_pilot_block_filter.xml
-    ofdm_pilot_subcarrier_filter.xml
-    ofdm_ber_reference_source.xml
-    ofdm_recursive_timing_metric.xml
+    ofdm_CTF_MSE_enhancer.xml
     ofdm_accumulator_cc.xml
-    ofdm_autocorrelator_stage1.xml
-    ofdm_autocorrelator_stage2.xml
     ofdm_accumulator_ff.xml
-    ofdm_autocorrelator0.xml
+    ofdm_add_vcc.xml
+    ofdm_allocation_buffer.xml
+    ofdm_allocation_src.xml
     ofdm_autocorrelator.xml
+    ofdm_autocorrelator0.xml
+    ofdm_autocorrelator_stage1.xml
+    ofdm_autocorrelator_stage2.xml
     ofdm_ber_measurement.xml
+    ofdm_ber_reference_source.xml
     ofdm_bernoulli_bit_src.xml
     ofdm_bit_position_dependent_ber.xml
     ofdm_calc_metric.xml
+    ofdm_channel_equalizer.xml
+    ofdm_channel_equalizer_mimo.xml
     ofdm_channel_equalizer_mimo_2.xml
     ofdm_channel_equalizer_mimo_3.xml
-    ofdm_channel_equalizer_mimo.xml
-    ofdm_channel_equalizer.xml
     ofdm_channel_estimator_01.xml
     ofdm_channel_estimator_02.xml
     ofdm_coded_bpsk_soft_decoder.xml
     ofdm_compat_read_ber_from_imgxfer.xml
-    ofdm_divide_frame_fc.xml
-    ofdm_imgtransfer_sink.xml
-    ofdm_imgtransfer_src.xml
-    ofdm_imgtransfer_testkanal.xml
     ofdm_complex_to_arg.xml
     ofdm_complex_white_noise.xml
     ofdm_constellation_sample_filter.xml
-    ofdm_CTF_MSE_enhancer.xml
     ofdm_cyclic_prefixer.xml
     ofdm_depuncture_bb.xml
     ofdm_depuncture_ff.xml
-    ofdm_time_sync.xml
+    ofdm_divide_frame_fc.xml
+    ofdm_dummy_ff.xml
     ofdm_dynamic_trigger_ib.xml
+    ofdm_encoder_bb.xml
     ofdm_extract_block_from_frame.xml
+    ofdm_fbmc_asymmetrical_vector_mask_vcvc.xml
+    ofdm_fbmc_asymmetrical_vector_padding_vcvc.xml
+    ofdm_fbmc_beta_multiplier_vcvc.xml
+    ofdm_fbmc_channel_hier_cc.xml
+    ofdm_fbmc_frame_sampler.xml
+    ofdm_fbmc_insert_preamble_mu_vcvc.xml
+    ofdm_fbmc_insert_preamble_vcvc.xml
+    ofdm_fbmc_junction_vcvc.xml
+    ofdm_fbmc_oqam_postprocessing_vcvc.xml
+    ofdm_fbmc_oqam_preprocessing_vcvc.xml
+    ofdm_fbmc_overlapping_parallel_to_serial_vcc.xml
+    ofdm_fbmc_overlapping_serial_to_parallel_cvc.xml
+    ofdm_fbmc_pilot_block_filter.xml
+    ofdm_fbmc_pilot_block_inserter.xml
+    ofdm_fbmc_polyphase_network_vcvc.xml
+    ofdm_fbmc_postprocess_CTF_estimate.xml
+    ofdm_fbmc_receiver_demo.xml
+    ofdm_fbmc_receiver_hier_cb.xml
+    ofdm_fbmc_receiver_multiuser_cb.xml
+    ofdm_fbmc_remove_preamble_vcvc.xml
+    ofdm_fbmc_rms_amplifier.xml
+    ofdm_fbmc_separate_vcvc.xml
+    ofdm_fbmc_snr_estimator.xml
+    ofdm_fbmc_snr_filter.xml
+    ofdm_fbmc_subchannel_processing_mu_vcvc.xml
+    ofdm_fbmc_subchannel_processing_vcvc.xml
+    ofdm_fbmc_symbol_creation_bvc.xml
+    ofdm_fbmc_symbol_estimation_vcb.xml
+    ofdm_fbmc_transmitter_demo.xml
+    ofdm_fbmc_transmitter_hier_bc.xml
+    ofdm_fbmc_transmitter_multiuser_bc.xml
+    ofdm_fbmc_vector_copy_vcvc.xml
+    ofdm_fbmc_vector_reshape_vcvc.xml
+    ofdm_fbmc_weighted_despreading_vcvc.xml
+    ofdm_fbmc_weighted_spreading_vcvc.xml
+    ofdm_feedback_sink_vf.xml
     ofdm_find_cir_shift.xml
     ofdm_frame_mux.xml
+    ofdm_frame_sampler.xml
     ofdm_frequency_shift_vcc.xml
+    ofdm_fsm.xml
     ofdm_gate_ff.xml
-    ofdm_generic_mapper_bcv.xml
     ofdm_generic_demapper_vcb.xml
+    ofdm_generic_mapper_bcv.xml
     ofdm_generic_mapper_mimo_bcv.xml
     ofdm_generic_softdemapper_vcf.xml
+    ofdm_imgtransfer_sink.xml
+    ofdm_imgtransfer_src.xml
+    ofdm_imgtransfer_testkanal.xml
     ofdm_int_skip.xml
     ofdm_interp_cir_set_noncir_to_zero.xml
+    ofdm_itpp_tdl_channel.xml
     ofdm_limit_vff.xml
     ofdm_lms_fir_ff.xml
     ofdm_lms_phase_tracking.xml
     ofdm_lms_phase_tracking_02.xml
     ofdm_lms_phase_tracking_03.xml
+    ofdm_lms_phase_tracking_dc_null.xml
     ofdm_ls_estimator_straight_slope.xml
     ofdm_mean_squared_error.xml
+    ofdm_midamble_insert.xml
     ofdm_mm_frequency_estimator.xml
     ofdm_moms_cc.xml
     ofdm_moms_ff.xml
     ofdm_multiply_const_ccf.xml
-    ofdm_multiply_const_ccf.xml
     ofdm_multiply_const_ii.xml
     ofdm_multiply_const_vcc.xml
     ofdm_multiply_frame_fc.xml
     ofdm_noise_nulling.xml
     ofdm_normalize_vcc.xml
+    ofdm_ofdm_pilot_block_inserter.xml
+    ofdm_ofdm_rms_amplifier.xml
     ofdm_peak_detector_02_fb.xml
     ofdm_peak_resync_bb.xml
+    ofdm_pilot_block_filter.xml
+    ofdm_pilot_subcarrier_filter.xml
     ofdm_pilot_subcarrier_inserter.xml
     ofdm_postprocess_CTF_estimate.xml
     ofdm_puncture_bb.xml
     ofdm_reassemble_ofdm_frame.xml
+    ofdm_recursive_timing_metric.xml
+    ofdm_reference_data_source_02_ib.xml
     ofdm_reference_data_source_ib.xml
     ofdm_reference_data_source_mimo_ib.xml
     ofdm_repetition_decoder_bs.xml
     ofdm_repetition_encoder_sb.xml
-    ofdm_subc_snr_estimator.xml
+    ofdm_rpc_manager.xml
+    ofdm_rx_rpc_manager.xml
     ofdm_scatterplot_sink.xml
+    ofdm_scatterplot_subcarrier_filter.xml
+    ofdm_scfdma_receiver_cb.xml
+    ofdm_scfdma_subcarrier_demapper_vcvc.xml
+    ofdm_scfdma_subcarrier_mapper_vcvc.xml
+    ofdm_scfdma_transmitter_bc.xml
     ofdm_schmidl_cfo_estimator.xml
     ofdm_schmidl_tm_rec_stage1.xml
     ofdm_schmidl_tm_rec_stage2.xml
@@ -111,72 +153,36 @@ install(FILES
     ofdm_sinr_interpolator.xml
     ofdm_skip.xml
     ofdm_snr_estimator.xml
+    ofdm_snr_estimator_dc_null.xml
+    ofdm_snr_filter.xml
     ofdm_sqrt_vff.xml
     ofdm_static_mux_c.xml
     ofdm_static_mux_v.xml
     ofdm_stc_decoder_rx0.xml
     ofdm_stc_decoder_rx1.xml
     ofdm_stc_encoder.xml
-    ofdm_stream_controlled_mux_b.xml
     ofdm_stream_controlled_mux.xml
+    ofdm_stream_controlled_mux_b.xml
+    ofdm_subc_snr_estimator.xml
     ofdm_suppress_erasure_decision.xml
     ofdm_symbol_random_src.xml
+    ofdm_template_ff.xml
     ofdm_throughput_measure.xml
+    ofdm_time_sync.xml
     ofdm_trigger_surveillance.xml
-    ofdm_vector_padding.xml
-    ofdm_vector_mask.xml
+    ofdm_tx_mux_ctrl.xml
+    ofdm_tx_rpc_manager.xml
+    ofdm_uhd_receiver.xml
+    ofdm_uhd_transmitter.xml
     ofdm_vector_element.xml
+    ofdm_vector_element_vff.xml
+    ofdm_vector_mask.xml
+    ofdm_vector_mask_dc_null.xml
+    ofdm_vector_padding.xml
+    ofdm_vector_padding_dc_null.xml
     ofdm_vector_sampler.xml
     ofdm_vector_sum_vcc.xml
     ofdm_vector_sum_vff.xml
     ofdm_viterbi_combined_fb.xml
-    ofdm_fsm.xml
-    ofdm_itpp_tdl_channel.xml
-    ofdm_encoder_bb.xml
-    ofdm_reference_data_source_02_ib.xml
-    ofdm_allocation_src.xml
-    ofdm_allocation_buffer.xml
-    ofdm_tx_mux_ctrl.xml
-    ofdm_vector_padding_dc_null.xml
-    ofdm_snr_estimator_dc_null.xml
-    ofdm_vector_mask_dc_null.xml
-    ofdm_lms_phase_tracking_dc_null.xml
-    ofdm_midamble_insert.xml 
-    ofdm_fbmc_oqam_preprocessing_vcvc.xml
-    ofdm_fbmc_oqam_postprocessing_vcvc.xml
-    ofdm_fbmc_insert_preamble_vcvc.xml
-    ofdm_fbmc_beta_multiplier_vcvc.xml
-    ofdm_fbmc_separate_vcvc.xml
-    ofdm_fbmc_polyphase_network_vcvc.xml
-    ofdm_fbmc_overlapping_parallel_to_serial_vcc.xml
-    ofdm_fbmc_overlapping_serial_to_parallel_cvc.xml
-    ofdm_fbmc_pilot_block_inserter.xml
-    ofdm_fbmc_vector_reshape_vcvc.xml
-    ofdm_fbmc_vector_copy_vcvc.xml
-    ofdm_fbmc_junction_vcvc.xml
-    ofdm_fbmc_remove_preamble_vcvc.xml
-    ofdm_fbmc_subchannel_processing_vcvc.xml
-    ofdm_fbmc_weighted_spreading_vcvc.xml
-    ofdm_fbmc_weighted_despreading_vcvc.xml
-    ofdm_fbmc_channel_hier_cc.xml
-    ofdm_fbmc_receiver_hier_cb.xml
-    ofdm_fbmc_transmitter_hier_bc.xml
-    ofdm_fbmc_symbol_estimation_vcb.xml
-    ofdm_fbmc_symbol_creation_bvc.xml
-    ofdm_fbmc_transmitter_demo.xml
-    ofdm_fbmc_receiver_demo.xml
-    ofdm_fbmc_asymmetrical_vector_padding_vcvc.xml
-    ofdm_fbmc_transmitter_multiuser_bc.xml
-    ofdm_fbmc_asymmetrical_vector_mask_vcvc.xml
-    ofdm_fbmc_receiver_multiuser_cb.xml
-    ofdm_scfdma_subcarrier_mapper_vcvc.xml
-    ofdm_scfdma_transmitter_bc.xml
-    ofdm_scfdma_subcarrier_demapper_vcvc.xml
-    ofdm_scfdma_receiver_cb.xml
-    ofdm_add_vcc.xml
-    ofdm_fbmc_insert_preamble_mu_vcvc.xml
-    ofdm_fbmc_subchannel_processing_mu_vcvc.xml
-    ofdm_feedback_sink_vf.xml
-    ofdm_vector_element_vff.xml 
     DESTINATION share/gnuradio/grc/blocks
 )
diff --git a/grc/ofdm_fbmc_channel_hier_cc.xml b/grc/ofdm_fbmc_channel_hier_cc.xml
index 899533d..dbc4c44 100644
--- a/grc/ofdm_fbmc_channel_hier_cc.xml
+++ b/grc/ofdm_fbmc_channel_hier_cc.xml
@@ -148,18 +148,18 @@
   <param>
     <name>Extra padding</name>
     <key>extra_pad</key>
-    <type>enum</type>
+    <value>False</value>
+    <type>bool</type>
     <option>
       <name>Off</name>
-      <key>0</key>
+      <key>False</key>
     </option>
     <option>
       <name>On</name>
-      <key>1</key>
+      <key>True</key>
     </option>
   </param>
 
-
   <!-- Make one 'sink' node per input. Sub-nodes:
        * name (an identifier for the GUI)
        * type
diff --git a/grc/ofdm_fbmc_insert_preamble_mu_vcvc.xml b/grc/ofdm_fbmc_insert_preamble_mu_vcvc.xml
index d4e49af..0189d68 100644
--- a/grc/ofdm_fbmc_insert_preamble_mu_vcvc.xml
+++ b/grc/ofdm_fbmc_insert_preamble_mu_vcvc.xml
@@ -81,14 +81,15 @@
   <param>
     <name>Extra padding</name>
     <key>extra_pad</key>
-    <type>enum</type>
+    <value>False</value>
+    <type>bool</type>
     <option>
       <name>Off</name>
-      <key>0</key>
+      <key>False</key>
     </option>
     <option>
       <name>On</name>
-      <key>1</key>
+      <key>True</key>
     </option>
   </param>
 
diff --git a/grc/ofdm_fbmc_insert_preamble_vcvc.xml b/grc/ofdm_fbmc_insert_preamble_vcvc.xml
index 78b8d68..4dc8b28 100644
--- a/grc/ofdm_fbmc_insert_preamble_vcvc.xml
+++ b/grc/ofdm_fbmc_insert_preamble_vcvc.xml
@@ -48,14 +48,15 @@
   <param>
     <name>Extra padding</name>
     <key>extra_pad</key>
-    <type>enum</type>
+    <value>False</value>
+    <type>bool</type>
     <option>
       <name>Off</name>
-      <key>0</key>
+      <key>False</key>
     </option>
     <option>
       <name>On</name>
-      <key>1</key>
+      <key>True</key>
     </option>
   </param>
 
diff --git a/grc/ofdm_fbmc_receiver_demo.xml b/grc/ofdm_fbmc_receiver_demo.xml
index 1a78a41..457525a 100644
--- a/grc/ofdm_fbmc_receiver_demo.xml
+++ b/grc/ofdm_fbmc_receiver_demo.xml
@@ -90,14 +90,15 @@
   <param>
     <name>Extra padding</name>
     <key>extra_pad</key>
-    <type>enum</type>
+    <value>False</value>
+    <type>bool</type>
     <option>
       <name>Off</name>
-      <key>0</key>
+      <key>False</key>
     </option>
     <option>
       <name>On</name>
-      <key>1</key>
+      <key>True</key>
     </option>
   </param>
   <param>
diff --git a/grc/ofdm_fbmc_receiver_hier_cb.xml b/grc/ofdm_fbmc_receiver_hier_cb.xml
index 4b82a6b..6d793d9 100644
--- a/grc/ofdm_fbmc_receiver_hier_cb.xml
+++ b/grc/ofdm_fbmc_receiver_hier_cb.xml
@@ -90,14 +90,15 @@
   <param>
     <name>Extra padding</name>
     <key>extra_pad</key>
-    <type>enum</type>
+    <value>False</value>
+    <type>bool</type>
     <option>
       <name>Off</name>
-      <key>0</key>
+      <key>False</key>
     </option>
     <option>
       <name>On</name>
-      <key>1</key>
+      <key>True</key>
     </option>
   </param>
   <param>
diff --git a/grc/ofdm_fbmc_receiver_multiuser_cb.xml b/grc/ofdm_fbmc_receiver_multiuser_cb.xml
index c9ac6df..4d7a976 100644
--- a/grc/ofdm_fbmc_receiver_multiuser_cb.xml
+++ b/grc/ofdm_fbmc_receiver_multiuser_cb.xml
@@ -90,14 +90,15 @@
   <param>
     <name>Extra padding</name>
     <key>extra_pad</key>
-    <type>enum</type>
+    <value>False</value>
+    <type>bool</type>
     <option>
       <name>Off</name>
-      <key>0</key>
+      <key>False</key>
     </option>
     <option>
       <name>On</name>
-      <key>1</key>
+      <key>True</key>
     </option>
   </param>
   <param>
diff --git a/grc/ofdm_fbmc_remove_preamble_vcvc.xml b/grc/ofdm_fbmc_remove_preamble_vcvc.xml
index 9c4bc17..e07dacf 100644
--- a/grc/ofdm_fbmc_remove_preamble_vcvc.xml
+++ b/grc/ofdm_fbmc_remove_preamble_vcvc.xml
@@ -48,14 +48,15 @@
   <param>
     <name>Extra padding</name>
     <key>extra_pad</key>
-    <type>enum</type>
+    <value>False</value>
+    <type>bool</type>
     <option>
       <name>Off</name>
-      <key>0</key>
+      <key>False</key>
     </option>
     <option>
       <name>On</name>
-      <key>1</key>
+      <key>True</key>
     </option>
   </param>
 
diff --git a/grc/ofdm_fbmc_subchannel_processing_mu_vcvc.xml b/grc/ofdm_fbmc_subchannel_processing_mu_vcvc.xml
index 52c7db5..9a14b8a 100644
--- a/grc/ofdm_fbmc_subchannel_processing_mu_vcvc.xml
+++ b/grc/ofdm_fbmc_subchannel_processing_mu_vcvc.xml
@@ -48,14 +48,15 @@
   <param>
     <name>Extra padding</name>
     <key>extra_pad</key>
-    <type>enum</type>
+    <value>False</value>
+    <type>bool</type>
     <option>
       <name>Off</name>
-      <key>0</key>
+      <key>False</key>
     </option>
     <option>
       <name>On</name>
-      <key>1</key>
+      <key>True</key>
     </option>
   </param>
   <param>
@@ -94,4 +95,4 @@
     <type>complex</type>
     <vlen>$M</vlen>
   </source>
-</block>
\ No newline at end of file
+</block>
diff --git a/grc/ofdm_fbmc_subchannel_processing_vcvc.xml b/grc/ofdm_fbmc_subchannel_processing_vcvc.xml
index 2239e67..68e098a 100644
--- a/grc/ofdm_fbmc_subchannel_processing_vcvc.xml
+++ b/grc/ofdm_fbmc_subchannel_processing_vcvc.xml
@@ -46,14 +46,15 @@
   <param>
     <name>Extra padding</name>
     <key>extra_pad</key>
-    <type>enum</type>
+    <value>False</value>
+    <type>bool</type>
     <option>
       <name>Off</name>
-      <key>0</key>
+      <key>False</key>
     </option>
     <option>
       <name>On</name>
-      <key>1</key>
+      <key>True</key>
     </option>
   </param>
   <param>
diff --git a/grc/ofdm_fbmc_transmitter_demo.xml b/grc/ofdm_fbmc_transmitter_demo.xml
index b51014c..cbb95ae 100644
--- a/grc/ofdm_fbmc_transmitter_demo.xml
+++ b/grc/ofdm_fbmc_transmitter_demo.xml
@@ -84,18 +84,17 @@
   <param>
     <name>Extra padding</name>
     <key>extra_pad</key>
-    <type>enum</type>
+    <value>False</value>
+    <type>bool</type>
     <option>
       <name>Off</name>
-      <key>0</key>
+      <key>False</key>
     </option>
     <option>
       <name>On</name>
-      <key>1</key>
+      <key>True</key>
     </option>
   </param>
-  
-
 
   <!-- Make one 'sink' node per input. Sub-nodes:
        * name (an identifier for the GUI)
diff --git a/grc/ofdm_fbmc_transmitter_hier_bc.xml b/grc/ofdm_fbmc_transmitter_hier_bc.xml
index 11cebdf..fa5df48 100644
--- a/grc/ofdm_fbmc_transmitter_hier_bc.xml
+++ b/grc/ofdm_fbmc_transmitter_hier_bc.xml
@@ -84,18 +84,17 @@
   <param>
     <name>Extra padding</name>
     <key>extra_pad</key>
-    <type>enum</type>
+    <value>False</value>
+    <type>bool</type>
     <option>
       <name>Off</name>
-      <key>0</key>
+      <key>False</key>
     </option>
     <option>
       <name>On</name>
-      <key>1</key>
+      <key>True</key>
     </option>
   </param>
-  
-
 
   <!-- Make one 'sink' node per input. Sub-nodes:
        * name (an identifier for the GUI)
diff --git a/grc/ofdm_fbmc_transmitter_multiuser_bc.xml b/grc/ofdm_fbmc_transmitter_multiuser_bc.xml
index f382755..12d3a44 100644
--- a/grc/ofdm_fbmc_transmitter_multiuser_bc.xml
+++ b/grc/ofdm_fbmc_transmitter_multiuser_bc.xml
@@ -90,14 +90,15 @@
   <param>
     <name>Extra padding</name>
     <key>extra_pad</key>
-    <type>enum</type>
+    <value>False</value>
+    <type>bool</type>
     <option>
       <name>Off</name>
-      <key>0</key>
+      <key>False</key>
     </option>
     <option>
       <name>On</name>
-      <key>1</key>
+      <key>True</key>
     </option>
   </param>
 
diff --git a/include/ofdm/ofdmi_fast_math.h b/include/ofdm/ofdmi_fast_math.h
index 0488d73..085eae7 100644
--- a/include/ofdm/ofdmi_fast_math.h
+++ b/include/ofdm/ofdmi_fast_math.h
@@ -23,6 +23,7 @@
 #ifndef INCLUDED_OFDMI_FAST_MATH_H_
 #define INCLUDED_OFDMI_FAST_MATH_H_
 
+#include <pmmintrin.h>
 
 typedef float v4sf __attribute__ ((vector_size (16)));
 typedef float const v4sfc __attribute__ ((vector_size (16)));
@@ -52,31 +53,31 @@ perform_frequency_shift( gr_complex const * const in, gr_complex * const out,
   step_phasor.v[2] = std::cos( 2 * phase_step );
   step_phasor.v[3] = std::sin( 2 * phase_step );
 
-  v4sfc * vin = reinterpret_cast< v4sfc * >( in );
+  const v4sfc * vin = reinterpret_cast< const v4sfc * >( in );
   v4sf * vout = reinterpret_cast< v4sf * >( out );
 
   // complex multiplication, with gr_expj( phase )
   // phase increased for every complex sample
   for( int j = 0; j < vlen/2; ++j )
   {
-    v4sf x0 = __builtin_ia32_movsldup( phasor.vec );
+    v4sf x0 = _mm_moveldup_ps( phasor.vec );
     v4sf x1 = vin[ j ];
     x0 *= x1;
 
-    x1 = __builtin_ia32_shufps( x1, x1, 0xB1 );
-    v4sf x2 = __builtin_ia32_movshdup( phasor.vec );
+    x1 = _mm_shuffle_ps( x1, x1, 0xB1 );
+    v4sf x2 = _mm_movehdup_ps( phasor.vec );
     x2 *= x1;
 
     x0 = __builtin_ia32_addsubps( x0, x2 );
     vout[ j ] = x0;
 
 
-    x0 = __builtin_ia32_movsldup( phasor.vec );
+    x0 = _mm_moveldup_ps( phasor.vec );
     x1 = step_phasor.vec;
     x0 *= x1;
 
-    x1 = __builtin_ia32_shufps( x1, x1, 0xB1 );
-    x2 = __builtin_ia32_movshdup( phasor.vec );
+    x1 = _mm_shuffle_ps( x1, x1, 0xB1 );
+    x2 = _mm_movehdup_ps( phasor.vec );
     x2 *= x1;
 
     x0 = __builtin_ia32_addsubps( x0, x2 );
@@ -101,18 +102,18 @@ void
 multiply_complex_vector( gr_complex const * const x,
   gr_complex const * const y, gr_complex * const out, int vlen )
 {
-  v4sfc * vx = reinterpret_cast< v4sfc * >( x );
-  v4sfc * vy = reinterpret_cast< v4sfc * >( y );
+  const v4sfc * vx = reinterpret_cast< const v4sfc * >( x );
+  const v4sfc * vy = reinterpret_cast< const v4sfc * >( y );
   v4sf * vout = reinterpret_cast< v4sf * >( out );
 
   for( int j = 0; j < vlen/2; ++j )
   {
-    v4sf x0 = __builtin_ia32_movsldup( vx[ j ] );
+    v4sf x0 = _mm_moveldup_ps( vx[ j ] );
     v4sf x1 = vy[ j ];
     x0 *= x1;
 
-    x1 = __builtin_ia32_shufps( x1, x1, 0xB1 );
-    v4sf x2 = __builtin_ia32_movshdup( vx[ j ] );
+    x1 = _mm_shuffle_ps( x1, x1, 0xB1 );
+    v4sf x2 = _mm_movehdup_ps( vx[ j ] );
     x2 *= x1;
 
     x0 = __builtin_ia32_addsubps( x0, x2 );
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index 959c59c..f3a83b9 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -167,7 +167,7 @@ list(APPEND ofdm_sources
     fbmc_subchannel_processing_mu_vcvc_impl.cc 
     feedback_sink_vf_impl.cc
     vector_element_vff_impl.cc)
-SET ( CMAKE_CXX_FLAGS "-O3 -march=core2 -mfpmath=sse" )
+SET ( CMAKE_CXX_FLAGS "-O3 -msse3 -march=core2 -mfpmath=sse" )
 add_library(gnuradio-ofdm SHARED ${ofdm_sources})
 target_link_libraries(gnuradio-ofdm
     ${Boost_LIBRARIES}
diff --git a/lib/CTF_MSE_enhancer_impl.cc b/lib/CTF_MSE_enhancer_impl.cc
index b681480..ddc1458 100644
--- a/lib/CTF_MSE_enhancer_impl.cc
+++ b/lib/CTF_MSE_enhancer_impl.cc
@@ -27,7 +27,7 @@
 #include <gnuradio/io_signature.h>
 #include "CTF_MSE_enhancer_impl.h"
 
-
+#include <pmmintrin.h>
 #include "malloc16.h"
 
 #include <iostream>
@@ -168,12 +168,12 @@ namespace gr {
 
     	    for( int j = 0; j < d_vlen/4; ++j )
     	    {
-    	      v4sf x0 = __builtin_ia32_movsldup( vfbuf4[ j ] );
+    	      v4sf x0 = _mm_moveldup_ps( vfbuf4[ j ] );
     	      v4sf x1 = vffilt[ j ];
     	      x0 *= x1;
 
-    	      x1 = __builtin_ia32_shufps( x1, x1, 0xB1 );
-    	      v4sf x2 = __builtin_ia32_movshdup( vfbuf4[ j ] );
+    	      x1 = _mm_shuffle_ps( x1, x1, 0xB1 );
+    	      v4sf x2 = _mm_movehdup_ps( vfbuf4[ j ] );
     	      x2 *= x1;
 
     	      x0 = __builtin_ia32_addsubps( x0, x2 );
diff --git a/lib/accumulator_cc_impl.cc b/lib/accumulator_cc_impl.cc
index 5c820ae..4fa6e3a 100644
--- a/lib/accumulator_cc_impl.cc
+++ b/lib/accumulator_cc_impl.cc
@@ -70,6 +70,7 @@ namespace gr {
     	  }
 
     	  d_accum = acc;
+          return(noutput_items);
     }
 
   } /* namespace ofdm */
diff --git a/lib/allocation_buffer_impl.cc b/lib/allocation_buffer_impl.cc
index 57e8db7..050dadc 100644
--- a/lib/allocation_buffer_impl.cc
+++ b/lib/allocation_buffer_impl.cc
@@ -51,7 +51,7 @@ namespace gr {
         ,d_data_symbols(data_symbols)
         ,d_allocation_buffer(256) //TODO: id size hardcoded
         ,d_coding( coding )
-        ,d_bitspermode( {1,2,3,4,6,8,9,10,12})
+        ,d_bitspermode{1,2,3,4,6,8,9,10,12}
     {
         std::vector<int> out_sig(3);
         out_sig[0] = sizeof(int);                               // bitcount
diff --git a/lib/allocation_src_impl.cc b/lib/allocation_src_impl.cc
index ccd7917..f4f6dec 100644
--- a/lib/allocation_src_impl.cc
+++ b/lib/allocation_src_impl.cc
@@ -62,8 +62,8 @@ namespace gr {
         ,d_subcarriers(subcarriers)
         ,d_data_symbols(data_symbols)
         ,d_coding( coding )
-        ,d_bitspermode( {1,2,3,4,6,8,9,10,12})
-        ,d_modulbitspermode( {1,2,2,4,4,6,6,6,8} )
+        ,d_bitspermode{1,2,3,4,6,8,9,10,12}
+        ,d_modulbitspermode{1,2,2,4,4,6,6,6,8}
         ,d_modulbitcount_out(2000)
         ,d_allocation_scheme(CM)
         ,d_power_limit(subcarriers)
@@ -436,7 +436,7 @@ namespace gr {
                 d_amplitude_abs += level - d_gap/d_resource_blocks.snr[i];
         }
         //Set minimum to 0.01 possibility for improvement
-        d_amplitude_abs = std::max(0.01, sqrt(d_amplitude_abs/d_resource_blocks.number));
+        d_amplitude_abs = std::max(float(0.01), std::sqrt(d_amplitude_abs/float(d_resource_blocks.number)));
 
         //Allocate
         for(int i = 0; i < d_resource_blocks.number; i++)
diff --git a/lib/autocorrelator_stage1_impl.cc b/lib/autocorrelator_stage1_impl.cc
index 61d6609..fd95a8e 100644
--- a/lib/autocorrelator_stage1_impl.cc
+++ b/lib/autocorrelator_stage1_impl.cc
@@ -27,6 +27,7 @@
 #include <gnuradio/io_signature.h>
 #include "autocorrelator_stage1_impl.h"
 #include <iostream>
+#include <pmmintrin.h>
 
 namespace gr {
   namespace ofdm {
@@ -105,24 +106,24 @@ namespace gr {
     	    v4sf const in_del0 = *in_del;
     	    v4sf const in_del1 = *(in_del+1);
 
-    	    v4sf x0 = __builtin_ia32_movsldup( in0 );
-    	    v4sf x1 = __builtin_ia32_xorps( in_del0, xsign ); // conjugate
+    	    v4sf x0 = _mm_moveldup_ps( in0 );
+    	    v4sf x1 = _mm_xor_ps( in_del0, xsign ); // conjugate
     	    x0 *=  x1;
 
-    	    x1 = __builtin_ia32_shufps( x1, x1, 0xB1 );
-    	    v4sf x2 = __builtin_ia32_movshdup( in0 );
+    	    x1 = _mm_shuffle_ps( x1, x1, 0xB1 );
+    	    v4sf x2 = _mm_movehdup_ps( in0 );
     	    x2 *= x1;
 
     	    x0 = __builtin_ia32_addsubps( x0, x2 );
     	    p[0] = x0;
 
 
-    	    x0 = __builtin_ia32_movsldup( in1 );
-    	    x1 = __builtin_ia32_xorps( in_del1, xsign ); // conjugate
+    	    x0 = _mm_moveldup_ps( in1 );
+    	    x1 = _mm_xor_ps( in_del1, xsign ); // conjugate
     	    x0 *= x1;
 
-    	    x1 = __builtin_ia32_shufps( x1, x1, 0xB1 );
-    	    x2 = __builtin_ia32_movshdup( in1 );
+    	    x1 = _mm_shuffle_ps( x1, x1, 0xB1 );
+    	    x2 = _mm_movehdup_ps( in1 );
     	    x2 *= x1;
 
     	    x0 = __builtin_ia32_addsubps( x0, x2 );
diff --git a/lib/autocorrelator_stage2_impl.cc b/lib/autocorrelator_stage2_impl.cc
index c967bec..77a5263 100644
--- a/lib/autocorrelator_stage2_impl.cc
+++ b/lib/autocorrelator_stage2_impl.cc
@@ -26,6 +26,7 @@
 
 #include <gnuradio/io_signature.h>
 #include "autocorrelator_stage2_impl.h"
+#include <xmmintrin.h>
 
 namespace gr {
   namespace ofdm {
diff --git a/lib/channel_equalizer_impl.cc b/lib/channel_equalizer_impl.cc
index f77323c..031a077 100644
--- a/lib/channel_equalizer_impl.cc
+++ b/lib/channel_equalizer_impl.cc
@@ -31,6 +31,7 @@
 #include <algorithm>
 
 #include "malloc16.h"
+#include <pmmintrin.h>
 
 #define DEBUG 0
 
@@ -158,12 +159,12 @@ namespace gr {
     	    {
     	      for( int j = 0; j < d_vlen/2; ++j )
     	      {
-    	        v4sf x0 = __builtin_ia32_movsldup( vin[ j ] );
+    	        v4sf x0 = _mm_moveldup_ps( vin[ j ] );
     	        v4sf x1 = vbuf[ j ];
     	        x0 *= x1;
 
-    	        x1 = __builtin_ia32_shufps( x1, x1, 0xB1 );
-    	        v4sf x2 = __builtin_ia32_movshdup( vin[ j ] );
+    	        x1 = _mm_shuffle_ps( x1, x1, 0xB1 );
+    	        v4sf x2 = _mm_movehdup_ps( vin[ j ] );
     	        x2 *= x1;
 
     	        x0 = __builtin_ia32_addsubps( x0, x2 );
diff --git a/lib/depuncture_bb_impl.cc b/lib/depuncture_bb_impl.cc
index efb199c..833703a 100644
--- a/lib/depuncture_bb_impl.cc
+++ b/lib/depuncture_bb_impl.cc
@@ -59,7 +59,7 @@ namespace gr {
     	, d_need_modemap( 1 )
     	, d_modemap(new char[vlen])
     		//d_rep_per_mode( {1,1,1,1,1,1,1,1,1} ) // test case
-    	, d_rep_per_mode( {2,4,1,8,2,4,3,2,4} )
+        , d_rep_per_mode{2,4,1,8,2,4,3,2,4} // C++11 only: consider std::array
     {}
 
     void depuncture_bb_impl::set_punctpat(char c_mode)
diff --git a/lib/depuncture_ff_impl.cc b/lib/depuncture_ff_impl.cc
index be50800..0c6f2d5 100644
--- a/lib/depuncture_ff_impl.cc
+++ b/lib/depuncture_ff_impl.cc
@@ -59,7 +59,7 @@ namespace gr {
     	, d_need_modemap( 1 )
     	, d_modemap(new char[vlen])
     		//d_rep_per_mode( {1,1,1,1,1,1,1,1,1} ) // test case
-    	, d_rep_per_mode( {2,4,1,8,2,4,3,2,4} )
+        , d_rep_per_mode{2,4,1,8,2,4,3,2,4} // C++11 only: consider std::array
     {}
 
     void depuncture_ff_impl::set_punctpat(char c_mode)
diff --git a/lib/extract_block_from_frame_impl.cc b/lib/extract_block_from_frame_impl.cc
index 42e60c6..4e99573 100644
--- a/lib/extract_block_from_frame_impl.cc
+++ b/lib/extract_block_from_frame_impl.cc
@@ -91,7 +91,7 @@ namespace gr {
     	  {
     	    if( frame_start[i] != 0 )
     	    {
-    	      d_ctr == 0;
+    	      d_ctr = 0;
     	    }
 
     	    if( d_ctr < d_block_no )
diff --git a/lib/fbmc_polyphase_network_vcvc_impl.cc b/lib/fbmc_polyphase_network_vcvc_impl.cc
index 98368f0..dfc4eb3 100644
--- a/lib/fbmc_polyphase_network_vcvc_impl.cc
+++ b/lib/fbmc_polyphase_network_vcvc_impl.cc
@@ -91,9 +91,9 @@ namespace gr {
 	{
 	  // coefficients
 	  float **P = new float*[3];
-	  float P0[]={1, sqrt(2)/2}; //K=2
+	  float P0[]={1, sqrtf(2)/2}; //K=2
 	  float P1[]={1,0.911438,0.411438}; //K=3
-	  float P2[]={1,0.97195983,sqrt(2)/2,0.23514695}; //K=4
+	  float P2[]={1,0.97195983,sqrtf(2)/2,0.23514695}; //K=4
 	  P[0] = P0;
 	  P[1] = P1;
 	  P[2] = P2;
diff --git a/lib/fbmc_subchannel_processing_mu_vcvc_impl.cc b/lib/fbmc_subchannel_processing_mu_vcvc_impl.cc
index bb96f3d..c364de4 100644
--- a/lib/fbmc_subchannel_processing_mu_vcvc_impl.cc
+++ b/lib/fbmc_subchannel_processing_mu_vcvc_impl.cc
@@ -241,17 +241,18 @@ namespace gr {
 
 						gr_complex EQ1, EQ2;
 						if(d_sel_eq==1){ // linear interpolation
-							EQ1 = (EQmin+EQi)/gr_complex(2,0);
-							EQ2 = (EQplus+EQi)/gr_complex(2,0);
+                                                  const float ro = 0.5;
+                                                  EQ1 = (EQmin+EQi)*ro;
+                                                  EQ2 = (EQplus+EQi)*ro;
 						}else if(d_sel_eq==2){
-							float ro = 0.5;
-							EQ1 = (gr_complex)EQmin*pow((EQi/EQmin),ro);
-			                EQ2 = (gr_complex)EQi*pow((EQplus/EQi),ro);
+                                                  const float ro = 0.5;
+                                                  EQ1 = EQmin*pow((EQi/EQmin),ro);
+                                                  EQ2 = EQi*pow((EQplus/EQi),ro);
 						}
 
-						d_eq_coef[i]= pow(gr_complex(-1,0),i)*((EQ1-gr_complex(2,0)*EQi+EQ2)+gr_complex(0,1)*(EQ2-EQ1))/gr_complex(4,0);
-						d_eq_coef[i+d_M]= (gr_complex)(EQ1+EQ2)/gr_complex(2,0);
-						d_eq_coef[i+2*d_M]= pow(gr_complex(-1,0),i)*((EQ1-gr_complex(2,0)*EQi+EQ2)-gr_complex(0,1)*(EQ2-EQ1))/gr_complex(4,0);
+						d_eq_coef[i]= powf(-1.0,i)*((EQ1-(float(2.0)*EQi)+EQ2)+(gr_complex(0.0,1.0)*(EQ2-EQ1)))/float(4.0);
+						d_eq_coef[i+d_M]= (EQ1+EQ2)/float(2.0);
+						d_eq_coef[i+2*d_M]= powf(-1.0,i)*((EQ1-(float(2.0)*EQi)+EQ2)-(gr_complex(0.0,1.0)*(EQ2-EQ1)))/float(4.0);
 
 						// //logging
 						// equalizer_data<<(fr-1)<<"\t"<<i<<"\t"<<real(d_estimation[i])<<"\t"<<imag(d_estimation[i])<<"j\t";//((imag(d_estimation[i])>0)?"+":"-")
diff --git a/lib/fbmc_subchannel_processing_vcvc_impl.cc b/lib/fbmc_subchannel_processing_vcvc_impl.cc
index df46abd..3625d24 100644
--- a/lib/fbmc_subchannel_processing_vcvc_impl.cc
+++ b/lib/fbmc_subchannel_processing_vcvc_impl.cc
@@ -457,6 +457,7 @@ namespace gr {
 		fbmc_subchannel_processing_vcvc_impl::get_estimation(const gr_complex * start)
 		{
 			// int offset = estimation_point - d_M+1;
+#if 0                  
 /*			for(int i=0;i<d_M;i++){
 				d_estimation[i] = *(start-d_M+i+1)/(d_preamble[i]*normalization_factor);//*gr_complex(0.6863,0));
 				// // *(start-d_M+i+1) = d_estimation[i];
@@ -480,10 +481,10 @@ namespace gr {
 				volk_32f_x2_divide_32f(&d_divide[0],&d_norm_vect[0],&d_squared[0],d_M);
 				volk_32fc_32f_multiply_32fc(&d_estimation[0],&d_conj[0],&d_divide[0],d_M);
 				*/
-
+#endif
 				volk_32fc_32f_multiply_32fc(&d_conj[0],start,&d_preamble_1[0],d_M);
 				volk_32fc_32f_multiply_32fc(&d_estimation[0],&d_conj[0],&d_norm_vect[0],d_M);
-
+#if 0
 /*
 				std::cout<<"FRAME: "<<std::endl;
 				for(int i=0;i<d_M/2;i++){
@@ -518,6 +519,7 @@ namespace gr {
 				volk_32f_x2_add_32f(&d_estimation_q[0],&d_estimation_1_q[0],&d_estimation_2_q[0],d_M);
 				volk_32f_x2_interleave_32fc(&d_estimation[0],&d_estimation_i[0],&d_estimation_q[0],d_M);
 */
+#endif
 				//std::cout<<"FRAME: "<<std::endl;
 				for(int i=0;i<d_M/2;i++){
 				//	std::cout<<d_estimation[i]<<std::endl;
@@ -549,25 +551,26 @@ namespace gr {
 
 				gr_complex EQ1, EQ2;
 				if(d_sel_eq==1){ // linear interpolation
-					EQ1 = (EQmin+EQi)/gr_complex(2,0);
-					EQ2 = (EQplus+EQi)/gr_complex(2,0);
+					float ro = 0.5;
+                                        EQ1 = (EQmin+EQi)*ro;
+                                  EQ2 = (EQplus+EQi)*ro;
 				}else if(d_sel_eq==2){
 					float ro = 0.5;
-					EQ1 = (gr_complex)EQmin*pow((EQi/EQmin),ro);
-	                EQ2 = (gr_complex)EQi*pow((EQplus/EQi),ro);
+					EQ1 = EQmin*pow((EQi/EQmin),ro);
+	                EQ2 = EQi*pow((EQplus/EQi),ro);
 				}
 
 				// 0:2-> new implementation, 3< -> old implementation
 				if(order == 0){
-					d_eq_coef[i+2*d_M]= pow(gr_complex(-1,0),i)*((EQ1-gr_complex(2,0)*EQi+EQ2)-gr_complex(0,1)*(EQ2-EQ1))/gr_complex(4,0); // change this first
+                                  d_eq_coef[i+2*d_M]= powf(-1.0,i)*((EQ1-(float(2.0)*EQi)+EQ2)-(gr_complex(0,1)*(EQ2-EQ1)))/float(4.0); // change this first
 				}else if (order == 1){
-					d_eq_coef[i+d_M]= (gr_complex)(EQ1+EQ2)/gr_complex(2,0); // then this
+					d_eq_coef[i+d_M]= (EQ1+EQ2)/float(2.0); // then this
 				}else if(order == 2){
-					d_eq_coef[i]= pow(gr_complex(-1,0),i)*((EQ1-gr_complex(2,0)*EQi+EQ2)+gr_complex(0,1)*(EQ2-EQ1))/gr_complex(4,0); // lastly this
+                                  d_eq_coef[i]= powf(-1.0,i)*((EQ1-(float(2.0)*EQi)+EQ2)+(gr_complex(0,1)*(EQ2-EQ1)))/float(4.0); // lastly this
 				}else{
-					d_eq_coef[i]= pow(gr_complex(-1,0),i)*((EQ1-gr_complex(2,0)*EQi+EQ2)+gr_complex(0,1)*(EQ2-EQ1))/gr_complex(4,0);
-					d_eq_coef[i+d_M]= (gr_complex)(EQ1+EQ2)/gr_complex(2,0);
-					d_eq_coef[i+2*d_M]= pow(gr_complex(-1,0),i)*((EQ1-gr_complex(2,0)*EQi+EQ2)-gr_complex(0,1)*(EQ2-EQ1))/gr_complex(4,0);
+                                  d_eq_coef[i]= powf(-1.0,i)*((EQ1-(float(2.0)*EQi)+EQ2)+(gr_complex(0,1)*(EQ2-EQ1)))/float(4.0);
+					d_eq_coef[i+d_M]= (EQ1+EQ2)/float(2.0);
+					d_eq_coef[i+2*d_M]= powf(-1.0,i)*((EQ1-(float(2.0)*EQi)+EQ2)-(gr_complex(0,1)*(EQ2-EQ1)))/float(4.0);
 				}
 
 				// //logging
diff --git a/lib/find_cir_shift_impl.cc b/lib/find_cir_shift_impl.cc
index f3a2500..96f6635 100644
--- a/lib/find_cir_shift_impl.cc
+++ b/lib/find_cir_shift_impl.cc
@@ -27,6 +27,7 @@
 #include <gnuradio/io_signature.h>
 #include "find_cir_shift_impl.h"
 
+#include <pmmintrin.h>
 #include "malloc16.h"
 
 #include <iostream>
@@ -160,12 +161,12 @@ namespace gr {
 
     	    for( int j = 0; j < d_vlen/4; ++j )
     	    {
-    	      v4sf x0 = __builtin_ia32_movsldup( vfbuf4[ j ] );
+    	      v4sf x0 = _mm_moveldup_ps( vfbuf4[ j ] );
     	      v4sf x1 = vffilt[ j ];
     	      x0 *= x1;
 
-    	      x1 = __builtin_ia32_shufps( x1, x1, 0xB1 );
-    	      v4sf x2 = __builtin_ia32_movshdup( vfbuf4[ j ] );
+    	      x1 = _mm_shuffle_ps( x1, x1, 0xB1 );
+    	      v4sf x2 = _mm_movehdup_ps( vfbuf4[ j ] );
     	      x2 *= x1;
 
     	      x0 = __builtin_ia32_addsubps( x0, x2 );
diff --git a/lib/itpp_tdl_channel_impl.cc b/lib/itpp_tdl_channel_impl.cc
index ee0938f..cb2050f 100644
--- a/lib/itpp_tdl_channel_impl.cc
+++ b/lib/itpp_tdl_channel_impl.cc
@@ -359,6 +359,7 @@ namespace gr {
         }
       }
       assert(0 && "failed to translate");
+      return((T2)(-1));
     }
 
     template < typename T1, typename T2 >
@@ -373,6 +374,7 @@ namespace gr {
         }
       }
       assert(0 && "failed to translate");
+      return((T1)(-1));
     }
 
     #define ENUM_FIRST_TO_SECOND( x )     \
diff --git a/lib/multiply_const_vcc_impl.cc b/lib/multiply_const_vcc_impl.cc
index 94bbfff..e8678c9 100644
--- a/lib/multiply_const_vcc_impl.cc
+++ b/lib/multiply_const_vcc_impl.cc
@@ -27,6 +27,7 @@
 #include <gnuradio/io_signature.h>
 #include "multiply_const_vcc_impl.h"
 
+#include <pmmintrin.h>
 #include "malloc16.h"
 
 #include <iostream>
@@ -85,12 +86,12 @@ namespace gr {
     	  {
     	    for( int j = 0; j < d_vlen/2; ++j )
     	    {
-    	      v4sf x0 = __builtin_ia32_movsldup( buf[ j ] );
+    	      v4sf x0 = _mm_moveldup_ps( buf[ j ] );
     	      v4sf x1 = in[ j ];
     	      x0 *= x1;
 
-    	      x1 = __builtin_ia32_shufps( x1, x1, 0xB1 );
-    	      v4sf x2 = __builtin_ia32_movshdup( buf[ j ] );
+    	      x1 = _mm_shuffle_ps( x1, x1, 0xB1 );
+    	      v4sf x2 = _mm_movehdup_ps( buf[ j ] );
     	      x2 *= x1;
 
     	      x0 = __builtin_ia32_addsubps( x0, x2 );
diff --git a/lib/puncture_bb_impl.cc b/lib/puncture_bb_impl.cc
index eac25ca..13cc801 100644
--- a/lib/puncture_bb_impl.cc
+++ b/lib/puncture_bb_impl.cc
@@ -58,7 +58,7 @@ namespace gr {
     	, d_need_modemap( 1 )
     	, d_modemap(new char[vlen])
     	//d_rep_per_mode( {1,1,1,1,1,1,1,1,1} ) // test case
-    	, d_rep_per_mode( {2,4,1,8,2,4,3,2,4} )
+        , d_rep_per_mode{2,4,1,8,2,4,3,2,4} // C++11 only: consider std::array
     {
     	set_relative_rate(1.0/6.0);
     }
diff --git a/lib/repetition_encoder_sb_impl.cc b/lib/repetition_encoder_sb_impl.cc
index 95b4eb3..b1124ee 100644
--- a/lib/repetition_encoder_sb_impl.cc
+++ b/lib/repetition_encoder_sb_impl.cc
@@ -90,7 +90,7 @@ namespace gr {
     			  //and write it bit by bit to the output
     			  for (unsigned short bit = 0; bit < d_input_bits; bit++)
     			  {
-    				  out[output_pos++] = ((char)(in[item] >> bit)) & 1
+                            out[output_pos++] = (((char)(in[item] >> bit)) & 1)
     				                      ^ d_whitener[reps*d_input_bits+bit];
     			  }
     		  }
diff --git a/lib/skip_impl.cc b/lib/skip_impl.cc
index 592ecda..1a2d9be 100644
--- a/lib/skip_impl.cc
+++ b/lib/skip_impl.cc
@@ -193,7 +193,7 @@ namespace gr {
 
     int skip_impl::fixed_rate_ninput_to_noutput(int ninput_items)
     {
-      return std::max(0U,ninput_items * (d_blocklen-d_skip)/d_blocklen);
+      return std::max(0,ninput_items * int ((d_blocklen-d_skip)/d_blocklen));
     }
 
 
diff --git a/lib/util_bmp.cc b/lib/util_bmp.cc
index e151a10..e29b4ed 100644
--- a/lib/util_bmp.cc
+++ b/lib/util_bmp.cc
@@ -1,6 +1,5 @@
 #include <stdio.h>
 #include <cstdlib>
-#include <malloc.h>
 #include <ofdm/util_endian.h>
 #include <ofdm/util_bmp.h>
 
diff --git a/python/ofdm/CMakeLists.txt b/python/ofdm/CMakeLists.txt
index d30b694..9bd5c27 100644
--- a/python/ofdm/CMakeLists.txt
+++ b/python/ofdm/CMakeLists.txt
@@ -63,13 +63,8 @@ GR_PYTHON_INSTALL(
     transmit_path.py
     fbmc_transmit_path.py
     scfdma_receiver_cb.py
-    fbmc_insert_preamble_mu_vcvc.py DESTINATION bin
-)
-
-GR_PYTHON_INSTALL(
-    FILES
-    configparse.py
-    DESTINATION ${GR_PYTHON_DIR}
+    fbmc_insert_preamble_mu_vcvc.py DESTINATION
+    ${GR_PYTHON_DIR}/ofdm
 )
 
 GR_PYTHON_INSTALL(
@@ -78,6 +73,7 @@ GR_PYTHON_INSTALL(
     autocorrelator.py
     channel.py
     common_options.py
+    configparse.py
     delaylines.py
     file_psd.py
     fusb_options.py
