diff --git a/cmake_modules/wolfConfig.cmake b/cmake_modules/wolfConfig.cmake
index 82bb7cf0a5523302eb3d6c7fd5064e382a6c59f5..c9321c445315da6e354b1f8423b7368745c14816 100644
--- a/cmake_modules/wolfConfig.cmake
+++ b/cmake_modules/wolfConfig.cmake
@@ -156,7 +156,6 @@ list(APPEND EIGEN_INCLUDE_DIR_HINTS /usr/include/eigen3)
 # match and reject with an explanation below.
 
 find_package(Eigen3 ${wolf_EIGEN_VERSION} QUIET)
-
 # Flag set with currently found Eigen version.
 set(EIGEN_VERSION @EIGEN_VERSION@)
 if (EIGEN3_FOUND)
diff --git a/include/IMU/processor/processor_IMU.h b/include/IMU/processor/processor_IMU.h
index d94f8a992ce7ce3cf531257b429a1e9f167ec5e3..e90affda5cd952abe0412bf1c6bcbe4cac839018 100644
--- a/include/IMU/processor/processor_IMU.h
+++ b/include/IMU/processor/processor_IMU.h
@@ -11,6 +11,8 @@ WOLF_STRUCT_PTR_TYPEDEFS(ProcessorParamsIMU);
 
 struct ProcessorParamsIMU : public ProcessorParamsMotion
 {
+  // ProcessorParamsIMU() = default;
+    using ProcessorParamsMotion::ProcessorParamsMotion;
     Scalar unmeasured_perturbation_std_ = 0.00001;  // TODO: pass in processor motion?
 };
 
diff --git a/include/IMU/sensor/sensor_IMU.h b/include/IMU/sensor/sensor_IMU.h
index 04d85ce04e47e4be13905a53abdccb946f472b9d..aa4bb06bf172c26299730c60dc9e614fa3da1b72 100644
--- a/include/IMU/sensor/sensor_IMU.h
+++ b/include/IMU/sensor/sensor_IMU.h
@@ -3,6 +3,7 @@
 
 //wolf includes
 #include "core/sensor/sensor_base.h"
+#include "core/utils/params_server.hpp"
 #include <iostream>
 
 namespace wolf {
@@ -27,6 +28,20 @@ struct IntrinsicsIMU : public IntrinsicsBase
         Scalar wb_rate_stdev = 0.00001;
 
         virtual ~IntrinsicsIMU() = default;
+    IntrinsicsIMU()
+    {
+        //DEFINED FOR COMPATIBILITY PURPOSES. TO BE REMOVED IN THE FUTURE.
+    }
+    IntrinsicsIMU(std::string _unique_name, const paramsServer& _server):
+        IntrinsicsBase(_unique_name, _server)
+    {
+        w_noise = _server.getParam<Scalar>(_unique_name + "/w_noise", "0.001");
+        a_noise = _server.getParam<Scalar>(_unique_name + "/a_noise", "0.004");
+        ab_initial_stdev = _server.getParam<Scalar>(_unique_name + "/ab_initial_stdev", "0.01");
+        wb_initial_stdev = _server.getParam<Scalar>(_unique_name + "/wb_initial_stdev", "0.01");
+        ab_rate_stdev = _server.getParam<Scalar>(_unique_name + "/ab_rate_stdev", "0.00001");
+        wb_rate_stdev = _server.getParam<Scalar>(_unique_name + "/wb_rate_stdev", "0.00001");
+    }
 };
 
 WOLF_PTR_TYPEDEFS(SensorIMU);
diff --git a/wolf_scripts/create_plugin.sh b/wolf_scripts/create_plugin.sh
new file mode 100755
index 0000000000000000000000000000000000000000..b1ca42f945f7f559a70e43377412faa8e6d4ec9c
--- /dev/null
+++ b/wolf_scripts/create_plugin.sh
@@ -0,0 +1,126 @@
+#!/bin/bash
+# $1 path to the root of the plugin
+# $2 name of the plugin
+# $3 files to be moved
+
+#Generate the necessary dirs
+# if [ ! -d $1 ];
+# then
+#     mkdir $1
+# fi
+
+# if [ ! -d $1/include/$2 ];
+# then
+#     # mkdir $1/include
+#     mkdir $1/include/$2
+# fi
+# if [ ! -d $1/src ];
+# then
+#     mkdir $1/src
+# fi
+root_dir=$(echo $1 | rev | cut -d '/' -f 2- | rev)
+if [ ! -d $root_dir/$2 ];
+then
+    cp -a ../Skeleton $root_dir
+    mv $root_dir/Skeleton $root_dir/$2
+    mv $root_dir/$2/include/skeleton $root_dir/$2/include/$2
+fi
+
+for folder in capture factor feature landmark processor sensor yaml ; do
+    if [ ! -d $1/include/$2/$folder ];
+    then
+        mkdir $1/include/$2/$folder
+    fi
+    if [ ! -d $1/src/$folder ];
+    then
+        mkdir $1/src/$folder
+    fi
+done
+for file in $(cat $3); do
+    head=$(echo $file | cut -d '/' -f 1)
+    if [ "$head" = "include" ];
+    then
+        folder=$(echo $file | cut -d '/' -f 3)
+        suffix=$(echo $file | cut -d '/' -f 4-)
+        line=$(ag "HDRS_"${folder^^} $1/CMakeLists.txt | cut -d ':' -f 1 | head -1)
+        line=$(($line + 1))
+        echo $line " && " $file " && " $folder " && " $suffix
+        if [ "$suffix" = "" ];
+        then
+            line=$(ag "HDRS_BASE" $1/CMakeLists.txt | cut -d ':' -f 1 | head -1)
+            line=$(($line + 1))
+            suffix=$folder
+            sed  -i ""$line"i $head/$2/$suffix" $1/CMakeLists.txt
+            cp $file $1/$head/$2/$suffix
+        else
+            sed  -i ""$line"i $head/$2/$folder/$suffix" $1/CMakeLists.txt
+            cp $file $1/$head/$2/$folder/$suffix
+        fi
+    elif [ "$head" = "src" ];
+    then
+        folder=$(echo $file | cut -d '/' -f 2)
+        suffix=$(echo $file | cut -d '/' -f 3-)
+        # ag "SRCS_"$folder $1/CMakeLists.txt
+        line=$(ag "SRCS_"${folder^^} $1/CMakeLists.txt | cut -d ':' -f 1 | head -1)
+        line=$(($line + 1))
+        echo $line " && " $file " && " $folder " && " $suffix
+        if [ "$suffix" = "" ];
+        then
+            line=$(ag "SRCS_BASE" $1/CMakeLists.txt | cut -d ':' -f 1 | head -1)
+            line=$(($line + 1))
+            suffix=$folder
+            sed  -i ""$line"i $file" $1/CMakeLists.txt
+            cp $file $1/$head/$suffix
+        else
+            sed  -i ""$line"i $file" $1/CMakeLists.txt
+            cp $file $1/$head/$folder/$suffix
+        fi
+    else
+        cp $file $1/$file
+    fi
+done
+for f in $(cat $3); do
+    hhead=$(echo $f | cut -d '/' -f 1)
+    if [ "$hhead" = "include" ];
+    then
+        ffolder=$(echo $f | cut -d '/' -f 3)
+        ssuffix=$(echo $f | cut -d '/' -f 4-)
+        inc=$ffolder/$ssuffix
+    else
+        continue
+    fi
+    for ff in $(cat $3); do
+        head=$(echo $ff | cut -d '/' -f 1)
+        if [ "$head" = "include" ];
+        then
+            folder=$(echo $ff | cut -d '/' -f 3)
+            suffix=$(echo $ff | cut -d '/' -f 4-)
+            if [ "$suffix" = "" ];
+            then
+                new_path=$1/$head/$2/$folder
+                sed -i -E "s@(#include[[:space:]]+\")base(\/$inc\")@\1$2\2@g" $new_path
+            else
+                new_path=$1/$head/$2/$folder/$suffix
+                sed -i -E "s@(#include[[:space:]]+\")base(\/$inc\")@\1$2\2@g" $new_path
+            fi
+            # sed -n -E "s@(#include[[:space:]]+\")base(\/$inc\")@\1$2\2@pg" $new_path
+            # sed -i -E "s@(#include[[:space:]]+\")base(\/$inc\")@\1$2\2@g" $new_path
+        elif [ "$head" = "src" ];
+        then
+            folder=$(echo $ff | cut -d '/' -f 2)
+            suffix=$(echo $ff | cut -d '/' -f 3-)
+            # sed -n -E "s@(#include[[:space:]]+\")base(\/$inc\")@\1$2\2@pg" $new_path
+            if [ "$suffix" = "" ];
+            then
+                new_path=$1/$head/$folder
+                sed -i -E "s@(#include[[:space:]]+\")base(\/$inc\")@\1$2\2@g" $new_path
+            else
+                new_path=$1/$head/$folder/$suffix
+                sed -i -E "s@(#include[[:space:]]+\")base(\/$inc\")@\1$2\2@g" $new_path
+            fi
+        else
+            # sed -n -E "s@(#include[[:space:]]+\")base(\/$inc\")@\1$2\2@pg" $new_path
+            sed -i -E "s@(#include[[:space:]]+\")base(\/$inc\")@\1$2\2@g" $1/$ff
+        fi
+    done
+done
\ No newline at end of file