diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8ba94d79b03ed72b92a3a655e3398622baf79f39..da4d5a10a447bf8a54be56532b9c13686680fe56 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,17 +1,10 @@
-cmake_minimum_required(VERSION 3.12)
+cmake_minimum_required(VERSION 3.13)
 
 exec_program("git" ${CMAKE_CURRENT_SOURCE_DIR} ARGS "describe --abbrev=0 --tags" OUTPUT_VARIABLE GIT_TAG)
 
-cmake_policy (SET CMP0020 NEW)
-
-message("Git tag: " ${GIT_TAG})
-project(RF_behavior_loader
+project(robofish-behavior_loader
     VERSION ${GIT_TAG}
     LANGUAGES CXX)
-	
-if("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
-    option(PACKAGE_WINDOWS_MSI "Create .msi package" OFF)
-endif()
 
 include(GNUInstallDirs)
 
@@ -20,32 +13,14 @@ set(INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR} CACHE PATH "Installation directory fo
 set(INSTALL_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME} CACHE PATH "Installation directory for header files")
 set(INSTALL_CONFIGDIR ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} CACHE STRING "Installation directory for cmake configuration files")
 
-set(TN RF_behavior_loader)
-add_library(${TN} STATIC)
-set_target_properties(${TN} PROPERTIES OUTPUT_NAME rf_behavior_loader)
-include(SrcBehaviorLoader/CMakeLists.txt)
-
-if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
-    target_link_libraries(${TN} stdc++fs)
-endif()
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake)
+include(Headers)
 
-install(
-    TARGETS
-        RF_behavior_loader
-    EXPORT
-        ${PROJECT_NAME}Targets
-    RUNTIME DESTINATION "${INSTALL_BINDIR}"
-    ARCHIVE DESTINATION "${INSTALL_LIBDIR}"
-)
-foreach(file ${RF_behavior_loader_PUBLIC_HEADERS})
-    file(RELATIVE_PATH rel_path "${CMAKE_CURRENT_LIST_DIR}/SrcBehaviorLoader" ${file})
-    get_filename_component(install_path ${rel_path} DIRECTORY)
-    install(FILES ${file} DESTINATION "${INSTALL_INCLUDEDIR}/${install_path}")
-endforeach()
+add_subdirectory(SrcBehaviorLoader)
 
 export(
     TARGETS
-        RF_behavior_loader
+        ${PROJECT_NAME}
     FILE "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Targets.cmake"
 )
 
@@ -75,12 +50,6 @@ install(
     DESTINATION ${INSTALL_CONFIGDIR}
 )
 
-install(
-    FILES
-        ${CMAKE_CURRENT_SOURCE_DIR}/cmake/VSSugar.cmake
-    DESTINATION ${INSTALL_CONFIGDIR}/Modules/${PROJECT_NAME}
-)
-
 set(CPACK_PACKAGE_VERSION ${GIT_TAG})
 set(CPACK_GENERATOR "TXZ")
 
diff --git a/SrcBehaviorLoader/CMakeLists.txt b/SrcBehaviorLoader/CMakeLists.txt
index 450bdbd6b59346b576a1def4cb5cf59da29ef328..ff310d9dc531c4b1d8fd8eaa6fa0ef900cd99048 100644
--- a/SrcBehaviorLoader/CMakeLists.txt
+++ b/SrcBehaviorLoader/CMakeLists.txt
@@ -1,28 +1,43 @@
 
-target_include_directories(${TN} PUBLIC
+set(target ${PROJECT_NAME})
+add_library(${target} STATIC)
+
+install(
+    TARGETS
+        ${PROJECT_NAME}
+    EXPORT
+        ${PROJECT_NAME}Targets
+    RUNTIME DESTINATION "${INSTALL_BINDIR}"
+    ARCHIVE DESTINATION "${INSTALL_LIBDIR}"
+)
+
+target_include_directories(${target} PUBLIC
     $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>
     $<INSTALL_INTERFACE:${INSTALL_INCLUDEDIR}>
 )
 
+if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
+    target_link_libraries(${target} stdc++fs)
+endif()
+
 find_package(Qt5 REQUIRED COMPONENTS Core)
-target_link_libraries(${TN} Qt5::Core)
+target_link_libraries(${target} Qt5::Core)
 
-set_target_properties(${TN} PROPERTIES POSITION_INDEPENDENT_CODE ON)
-set_target_properties(${TN} PROPERTIES AUTOMOC ON AUTOUIC ON AUTORCC ON)
-set_target_properties(${TN} PROPERTIES
+set_target_properties(${target} PROPERTIES POSITION_INDEPENDENT_CODE ON)
+set_target_properties(${target} PROPERTIES AUTOMOC ON AUTOUIC ON AUTORCC ON)
+set_target_properties(${target} PROPERTIES
     CXX_STANDARD 17
     CXX_STANDARD_REQUIRED YES
     CXX_EXTENSIONS NO
 )
 
-target_sources(${TN}
-PRIVATE
-    "${CMAKE_CURRENT_LIST_DIR}/PluginLoader.cpp"
-
+target_sources(${target}
+    PRIVATE
+        PluginLoader.cpp
 )
 
-set(${TN}_PUBLIC_HEADERS
-    "${CMAKE_CURRENT_LIST_DIR}/PluginLoader.h"
+instalL_headers(
+    HEADERS
+        PluginLoader.h
+    DESTINATION "${INSTALL_INCLUDEDIR}"
 )
-
-
diff --git a/cmake/Headers.cmake b/cmake/Headers.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..5e3dfec50ae4139c5a2ff075793add0d6563c160
--- /dev/null
+++ b/cmake/Headers.cmake
@@ -0,0 +1,8 @@
+function(install_headers)
+    cmake_parse_arguments(ARGS "" "DESTINATION" "HEADERS" ${ARGN})
+
+    foreach(file ${ARGS_HEADERS})
+        get_filename_component(install_path ${file} DIRECTORY)
+        install(FILES ${file} DESTINATION "${ARGS_DESTINATION}/${install_path}")
+    endforeach()
+endfunction()
diff --git a/cmake/VSSugar.cmake b/cmake/VSSugar.cmake
deleted file mode 100644
index 494b62e2582c27eb77aa6fa46a334a6e3fb1323f..0000000000000000000000000000000000000000
--- a/cmake/VSSugar.cmake
+++ /dev/null
@@ -1,16 +0,0 @@
-macro(VSSourceGroups ROOT_PATH)
-    file(
-        GLOB_RECURSE sources 
-        LIST_DIRECTORIES false
-        "${ROOT_PATH}/*.c*"
-        "${ROOT_PATH}/*.h*"
-        "${ROOT_PATH}/*.ui*"
-    )
-
-    foreach(source IN ITEMS ${sources})
-        get_filename_component(path "${source}" PATH)
-        file(RELATIVE_PATH rel_path "${ROOT_PATH}" "${path}")
-        string(REPLACE "/" "\\" group_path "${rel_path}")
-        source_group("${group_path}" FILES "${source}")
-    endforeach()
-endmacro()
\ No newline at end of file
diff --git a/cmake/RF_behavior_loaderConfig.cmake.in b/cmake/robofish-behavior_loaderConfig.cmake.in
similarity index 100%
rename from cmake/RF_behavior_loaderConfig.cmake.in
rename to cmake/robofish-behavior_loaderConfig.cmake.in