diff --git a/CMakeLists.txt b/CMakeLists.txt
index 74a2820266c0cb5a6de8cffa0b0f1cfe77c45461..8b46ec6ab248411bcf5e1203b345349ee3ce42b1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -186,18 +186,18 @@ if(BGS_PYTHON_SUPPORT)
 endif()
 
 if(NOT BGS_PYTHON_ONLY)
-  file(GLOB main_src src/*.cpp src/*.c)
-  file(GLOB main_inc src/*.h src/*.hpp)
+  file(GLOB main_src bgslibrary/*.cpp bgslibrary/*.c)
+  file(GLOB main_inc bgslibrary/*.h bgslibrary/*.hpp)
 endif()
 
-file(GLOB_RECURSE utils_src src/utils/*.cpp src/utils/*.c)
-file(GLOB_RECURSE utils_inc src/utils/*.h src/utils/*.hpp)
+file(GLOB_RECURSE utils_src bgslibrary/utils/*.cpp bgslibrary/utils/*.c)
+file(GLOB_RECURSE utils_inc bgslibrary/utils/*.h bgslibrary/utils/*.hpp)
 
-file(GLOB_RECURSE tools_src src/tools/*.cpp src/tools/*.c)
-file(GLOB_RECURSE tools_inc src/tools/*.h src/tools/*.hpp)
+file(GLOB_RECURSE tools_src bgslibrary/tools/*.cpp bgslibrary/tools/*.c)
+file(GLOB_RECURSE tools_inc bgslibrary/tools/*.h bgslibrary/tools/*.hpp)
 
-file(GLOB_RECURSE bgs_src src/algorithms/*.cpp src/algorithms/*.c)
-file(GLOB_RECURSE bgs_inc src/algorithms/*.h src/algorithms/*.hpp)
+file(GLOB_RECURSE bgs_src bgslibrary/algorithms/*.cpp bgslibrary/algorithms/*.c)
+file(GLOB_RECURSE bgs_inc bgslibrary/algorithms/*.h bgslibrary/algorithms/*.hpp)
 
 include_directories(${CMAKE_CURRENT_SOURCE_DIR})
 include_directories(${OpenCV_INCLUDE_DIRS})
@@ -214,7 +214,7 @@ endif()
 
 # GMG is not available in older OpenCV versions
 if(${OpenCV_VERSION} VERSION_LESS 2.4.3)
-  file(GLOB gmg src/algorithms/GMG.cpp)
+  file(GLOB gmg bgslibrary/algorithms/GMG.cpp)
   list(REMOVE_ITEM bgs_src ${gmg})
 endif()
 
@@ -314,7 +314,7 @@ if(NOT BGS_PYTHON_ONLY)
   )
   set_target_properties(bgslibrary_core PROPERTIES EXPORT_NAME BGSLibrary)
 
-  install(DIRECTORY src/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+  install(DIRECTORY bgslibrary/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
   install(EXPORT bgslibrary_core-targets
     FILE
       BGSLibraryTargets.cmake
diff --git a/src/FrameProcessor.cpp b/bgslibrary/FrameProcessor.cpp
similarity index 100%
rename from src/FrameProcessor.cpp
rename to bgslibrary/FrameProcessor.cpp
diff --git a/src/FrameProcessor.h b/bgslibrary/FrameProcessor.h
similarity index 100%
rename from src/FrameProcessor.h
rename to bgslibrary/FrameProcessor.h
diff --git a/src/IFrameProcessor.h b/bgslibrary/IFrameProcessor.h
similarity index 100%
rename from src/IFrameProcessor.h
rename to bgslibrary/IFrameProcessor.h
diff --git a/src/Main.cpp b/bgslibrary/Main.cpp
similarity index 100%
rename from src/Main.cpp
rename to bgslibrary/Main.cpp
diff --git a/src/PreProcessor.cpp b/bgslibrary/PreProcessor.cpp
similarity index 100%
rename from src/PreProcessor.cpp
rename to bgslibrary/PreProcessor.cpp
diff --git a/src/PreProcessor.h b/bgslibrary/PreProcessor.h
similarity index 100%
rename from src/PreProcessor.h
rename to bgslibrary/PreProcessor.h
diff --git a/src/VideoAnalysis.cpp b/bgslibrary/VideoAnalysis.cpp
similarity index 100%
rename from src/VideoAnalysis.cpp
rename to bgslibrary/VideoAnalysis.cpp
diff --git a/src/VideoAnalysis.h b/bgslibrary/VideoAnalysis.h
similarity index 100%
rename from src/VideoAnalysis.h
rename to bgslibrary/VideoAnalysis.h
diff --git a/src/VideoCapture.cpp b/bgslibrary/VideoCapture.cpp
similarity index 100%
rename from src/VideoCapture.cpp
rename to bgslibrary/VideoCapture.cpp
diff --git a/src/VideoCapture.h b/bgslibrary/VideoCapture.h
similarity index 100%
rename from src/VideoCapture.h
rename to bgslibrary/VideoCapture.h
diff --git a/src/algorithms/AdaptiveBackgroundLearning.cpp b/bgslibrary/algorithms/AdaptiveBackgroundLearning.cpp
similarity index 100%
rename from src/algorithms/AdaptiveBackgroundLearning.cpp
rename to bgslibrary/algorithms/AdaptiveBackgroundLearning.cpp
diff --git a/src/algorithms/AdaptiveBackgroundLearning.h b/bgslibrary/algorithms/AdaptiveBackgroundLearning.h
similarity index 100%
rename from src/algorithms/AdaptiveBackgroundLearning.h
rename to bgslibrary/algorithms/AdaptiveBackgroundLearning.h
diff --git a/src/algorithms/AdaptiveSelectiveBackgroundLearning.cpp b/bgslibrary/algorithms/AdaptiveSelectiveBackgroundLearning.cpp
similarity index 100%
rename from src/algorithms/AdaptiveSelectiveBackgroundLearning.cpp
rename to bgslibrary/algorithms/AdaptiveSelectiveBackgroundLearning.cpp
diff --git a/src/algorithms/AdaptiveSelectiveBackgroundLearning.h b/bgslibrary/algorithms/AdaptiveSelectiveBackgroundLearning.h
similarity index 100%
rename from src/algorithms/AdaptiveSelectiveBackgroundLearning.h
rename to bgslibrary/algorithms/AdaptiveSelectiveBackgroundLearning.h
diff --git a/src/algorithms/CodeBook.cpp b/bgslibrary/algorithms/CodeBook.cpp
similarity index 100%
rename from src/algorithms/CodeBook.cpp
rename to bgslibrary/algorithms/CodeBook.cpp
diff --git a/src/algorithms/CodeBook.h b/bgslibrary/algorithms/CodeBook.h
similarity index 100%
rename from src/algorithms/CodeBook.h
rename to bgslibrary/algorithms/CodeBook.h
diff --git a/src/algorithms/DPAdaptiveMedian.cpp b/bgslibrary/algorithms/DPAdaptiveMedian.cpp
similarity index 100%
rename from src/algorithms/DPAdaptiveMedian.cpp
rename to bgslibrary/algorithms/DPAdaptiveMedian.cpp
diff --git a/src/algorithms/DPAdaptiveMedian.h b/bgslibrary/algorithms/DPAdaptiveMedian.h
similarity index 100%
rename from src/algorithms/DPAdaptiveMedian.h
rename to bgslibrary/algorithms/DPAdaptiveMedian.h
diff --git a/src/algorithms/DPEigenbackground.cpp b/bgslibrary/algorithms/DPEigenbackground.cpp
similarity index 100%
rename from src/algorithms/DPEigenbackground.cpp
rename to bgslibrary/algorithms/DPEigenbackground.cpp
diff --git a/src/algorithms/DPEigenbackground.h b/bgslibrary/algorithms/DPEigenbackground.h
similarity index 100%
rename from src/algorithms/DPEigenbackground.h
rename to bgslibrary/algorithms/DPEigenbackground.h
diff --git a/src/algorithms/DPGrimsonGMM.cpp b/bgslibrary/algorithms/DPGrimsonGMM.cpp
similarity index 100%
rename from src/algorithms/DPGrimsonGMM.cpp
rename to bgslibrary/algorithms/DPGrimsonGMM.cpp
diff --git a/src/algorithms/DPGrimsonGMM.h b/bgslibrary/algorithms/DPGrimsonGMM.h
similarity index 100%
rename from src/algorithms/DPGrimsonGMM.h
rename to bgslibrary/algorithms/DPGrimsonGMM.h
diff --git a/src/algorithms/DPMean.cpp b/bgslibrary/algorithms/DPMean.cpp
similarity index 100%
rename from src/algorithms/DPMean.cpp
rename to bgslibrary/algorithms/DPMean.cpp
diff --git a/src/algorithms/DPMean.h b/bgslibrary/algorithms/DPMean.h
similarity index 100%
rename from src/algorithms/DPMean.h
rename to bgslibrary/algorithms/DPMean.h
diff --git a/src/algorithms/DPPratiMediod.cpp b/bgslibrary/algorithms/DPPratiMediod.cpp
similarity index 100%
rename from src/algorithms/DPPratiMediod.cpp
rename to bgslibrary/algorithms/DPPratiMediod.cpp
diff --git a/src/algorithms/DPPratiMediod.h b/bgslibrary/algorithms/DPPratiMediod.h
similarity index 100%
rename from src/algorithms/DPPratiMediod.h
rename to bgslibrary/algorithms/DPPratiMediod.h
diff --git a/src/algorithms/DPTexture.cpp b/bgslibrary/algorithms/DPTexture.cpp
similarity index 100%
rename from src/algorithms/DPTexture.cpp
rename to bgslibrary/algorithms/DPTexture.cpp
diff --git a/src/algorithms/DPTexture.h b/bgslibrary/algorithms/DPTexture.h
similarity index 100%
rename from src/algorithms/DPTexture.h
rename to bgslibrary/algorithms/DPTexture.h
diff --git a/src/algorithms/DPWrenGA.cpp b/bgslibrary/algorithms/DPWrenGA.cpp
similarity index 100%
rename from src/algorithms/DPWrenGA.cpp
rename to bgslibrary/algorithms/DPWrenGA.cpp
diff --git a/src/algorithms/DPWrenGA.h b/bgslibrary/algorithms/DPWrenGA.h
similarity index 100%
rename from src/algorithms/DPWrenGA.h
rename to bgslibrary/algorithms/DPWrenGA.h
diff --git a/src/algorithms/DPZivkovicAGMM.cpp b/bgslibrary/algorithms/DPZivkovicAGMM.cpp
similarity index 100%
rename from src/algorithms/DPZivkovicAGMM.cpp
rename to bgslibrary/algorithms/DPZivkovicAGMM.cpp
diff --git a/src/algorithms/DPZivkovicAGMM.h b/bgslibrary/algorithms/DPZivkovicAGMM.h
similarity index 100%
rename from src/algorithms/DPZivkovicAGMM.h
rename to bgslibrary/algorithms/DPZivkovicAGMM.h
diff --git a/src/algorithms/FrameDifference.cpp b/bgslibrary/algorithms/FrameDifference.cpp
similarity index 100%
rename from src/algorithms/FrameDifference.cpp
rename to bgslibrary/algorithms/FrameDifference.cpp
diff --git a/src/algorithms/FrameDifference.h b/bgslibrary/algorithms/FrameDifference.h
similarity index 100%
rename from src/algorithms/FrameDifference.h
rename to bgslibrary/algorithms/FrameDifference.h
diff --git a/src/algorithms/FuzzyChoquetIntegral.cpp b/bgslibrary/algorithms/FuzzyChoquetIntegral.cpp
similarity index 100%
rename from src/algorithms/FuzzyChoquetIntegral.cpp
rename to bgslibrary/algorithms/FuzzyChoquetIntegral.cpp
diff --git a/src/algorithms/FuzzyChoquetIntegral.h b/bgslibrary/algorithms/FuzzyChoquetIntegral.h
similarity index 100%
rename from src/algorithms/FuzzyChoquetIntegral.h
rename to bgslibrary/algorithms/FuzzyChoquetIntegral.h
diff --git a/src/algorithms/FuzzySugenoIntegral.cpp b/bgslibrary/algorithms/FuzzySugenoIntegral.cpp
similarity index 100%
rename from src/algorithms/FuzzySugenoIntegral.cpp
rename to bgslibrary/algorithms/FuzzySugenoIntegral.cpp
diff --git a/src/algorithms/FuzzySugenoIntegral.h b/bgslibrary/algorithms/FuzzySugenoIntegral.h
similarity index 100%
rename from src/algorithms/FuzzySugenoIntegral.h
rename to bgslibrary/algorithms/FuzzySugenoIntegral.h
diff --git a/src/algorithms/GMG.cpp b/bgslibrary/algorithms/GMG.cpp
similarity index 100%
rename from src/algorithms/GMG.cpp
rename to bgslibrary/algorithms/GMG.cpp
diff --git a/src/algorithms/GMG.h b/bgslibrary/algorithms/GMG.h
similarity index 100%
rename from src/algorithms/GMG.h
rename to bgslibrary/algorithms/GMG.h
diff --git a/src/algorithms/IBGS.h b/bgslibrary/algorithms/IBGS.h
similarity index 100%
rename from src/algorithms/IBGS.h
rename to bgslibrary/algorithms/IBGS.h
diff --git a/src/algorithms/IMBS/IMBS.cpp b/bgslibrary/algorithms/IMBS/IMBS.cpp
similarity index 100%
rename from src/algorithms/IMBS/IMBS.cpp
rename to bgslibrary/algorithms/IMBS/IMBS.cpp
diff --git a/src/algorithms/IMBS/IMBS.hpp b/bgslibrary/algorithms/IMBS/IMBS.hpp
similarity index 100%
rename from src/algorithms/IMBS/IMBS.hpp
rename to bgslibrary/algorithms/IMBS/IMBS.hpp
diff --git a/src/algorithms/IndependentMultimodal.cpp b/bgslibrary/algorithms/IndependentMultimodal.cpp
similarity index 100%
rename from src/algorithms/IndependentMultimodal.cpp
rename to bgslibrary/algorithms/IndependentMultimodal.cpp
diff --git a/src/algorithms/IndependentMultimodal.h b/bgslibrary/algorithms/IndependentMultimodal.h
similarity index 100%
rename from src/algorithms/IndependentMultimodal.h
rename to bgslibrary/algorithms/IndependentMultimodal.h
diff --git a/src/algorithms/KDE.cpp b/bgslibrary/algorithms/KDE.cpp
similarity index 100%
rename from src/algorithms/KDE.cpp
rename to bgslibrary/algorithms/KDE.cpp
diff --git a/src/algorithms/KDE.h b/bgslibrary/algorithms/KDE.h
similarity index 100%
rename from src/algorithms/KDE.h
rename to bgslibrary/algorithms/KDE.h
diff --git a/src/algorithms/KDE/KernelTable.cpp b/bgslibrary/algorithms/KDE/KernelTable.cpp
similarity index 100%
rename from src/algorithms/KDE/KernelTable.cpp
rename to bgslibrary/algorithms/KDE/KernelTable.cpp
diff --git a/src/algorithms/KDE/KernelTable.h b/bgslibrary/algorithms/KDE/KernelTable.h
similarity index 100%
rename from src/algorithms/KDE/KernelTable.h
rename to bgslibrary/algorithms/KDE/KernelTable.h
diff --git a/src/algorithms/KDE/NPBGSubtractor.cpp b/bgslibrary/algorithms/KDE/NPBGSubtractor.cpp
similarity index 100%
rename from src/algorithms/KDE/NPBGSubtractor.cpp
rename to bgslibrary/algorithms/KDE/NPBGSubtractor.cpp
diff --git a/src/algorithms/KDE/NPBGSubtractor.h b/bgslibrary/algorithms/KDE/NPBGSubtractor.h
similarity index 100%
rename from src/algorithms/KDE/NPBGSubtractor.h
rename to bgslibrary/algorithms/KDE/NPBGSubtractor.h
diff --git a/src/algorithms/KDE/NPBGmodel.cpp b/bgslibrary/algorithms/KDE/NPBGmodel.cpp
similarity index 100%
rename from src/algorithms/KDE/NPBGmodel.cpp
rename to bgslibrary/algorithms/KDE/NPBGmodel.cpp
diff --git a/src/algorithms/KDE/NPBGmodel.h b/bgslibrary/algorithms/KDE/NPBGmodel.h
similarity index 100%
rename from src/algorithms/KDE/NPBGmodel.h
rename to bgslibrary/algorithms/KDE/NPBGmodel.h
diff --git a/src/algorithms/KNN.cpp b/bgslibrary/algorithms/KNN.cpp
similarity index 100%
rename from src/algorithms/KNN.cpp
rename to bgslibrary/algorithms/KNN.cpp
diff --git a/src/algorithms/KNN.h b/bgslibrary/algorithms/KNN.h
similarity index 100%
rename from src/algorithms/KNN.h
rename to bgslibrary/algorithms/KNN.h
diff --git a/src/algorithms/LBAdaptiveSOM.cpp b/bgslibrary/algorithms/LBAdaptiveSOM.cpp
similarity index 100%
rename from src/algorithms/LBAdaptiveSOM.cpp
rename to bgslibrary/algorithms/LBAdaptiveSOM.cpp
diff --git a/src/algorithms/LBAdaptiveSOM.h b/bgslibrary/algorithms/LBAdaptiveSOM.h
similarity index 100%
rename from src/algorithms/LBAdaptiveSOM.h
rename to bgslibrary/algorithms/LBAdaptiveSOM.h
diff --git a/src/algorithms/LBFuzzyAdaptiveSOM.cpp b/bgslibrary/algorithms/LBFuzzyAdaptiveSOM.cpp
similarity index 100%
rename from src/algorithms/LBFuzzyAdaptiveSOM.cpp
rename to bgslibrary/algorithms/LBFuzzyAdaptiveSOM.cpp
diff --git a/src/algorithms/LBFuzzyAdaptiveSOM.h b/bgslibrary/algorithms/LBFuzzyAdaptiveSOM.h
similarity index 100%
rename from src/algorithms/LBFuzzyAdaptiveSOM.h
rename to bgslibrary/algorithms/LBFuzzyAdaptiveSOM.h
diff --git a/src/algorithms/LBFuzzyGaussian.cpp b/bgslibrary/algorithms/LBFuzzyGaussian.cpp
similarity index 100%
rename from src/algorithms/LBFuzzyGaussian.cpp
rename to bgslibrary/algorithms/LBFuzzyGaussian.cpp
diff --git a/src/algorithms/LBFuzzyGaussian.h b/bgslibrary/algorithms/LBFuzzyGaussian.h
similarity index 100%
rename from src/algorithms/LBFuzzyGaussian.h
rename to bgslibrary/algorithms/LBFuzzyGaussian.h
diff --git a/src/algorithms/LBMixtureOfGaussians.cpp b/bgslibrary/algorithms/LBMixtureOfGaussians.cpp
similarity index 100%
rename from src/algorithms/LBMixtureOfGaussians.cpp
rename to bgslibrary/algorithms/LBMixtureOfGaussians.cpp
diff --git a/src/algorithms/LBMixtureOfGaussians.h b/bgslibrary/algorithms/LBMixtureOfGaussians.h
similarity index 100%
rename from src/algorithms/LBMixtureOfGaussians.h
rename to bgslibrary/algorithms/LBMixtureOfGaussians.h
diff --git a/src/algorithms/LBP_MRF.cpp b/bgslibrary/algorithms/LBP_MRF.cpp
similarity index 100%
rename from src/algorithms/LBP_MRF.cpp
rename to bgslibrary/algorithms/LBP_MRF.cpp
diff --git a/src/algorithms/LBP_MRF.h b/bgslibrary/algorithms/LBP_MRF.h
similarity index 100%
rename from src/algorithms/LBP_MRF.h
rename to bgslibrary/algorithms/LBP_MRF.h
diff --git a/src/algorithms/LBP_MRF/MEDefs.cpp b/bgslibrary/algorithms/LBP_MRF/MEDefs.cpp
similarity index 100%
rename from src/algorithms/LBP_MRF/MEDefs.cpp
rename to bgslibrary/algorithms/LBP_MRF/MEDefs.cpp
diff --git a/src/algorithms/LBP_MRF/MEDefs.hpp b/bgslibrary/algorithms/LBP_MRF/MEDefs.hpp
similarity index 100%
rename from src/algorithms/LBP_MRF/MEDefs.hpp
rename to bgslibrary/algorithms/LBP_MRF/MEDefs.hpp
diff --git a/src/algorithms/LBP_MRF/MEHistogram.cpp b/bgslibrary/algorithms/LBP_MRF/MEHistogram.cpp
similarity index 100%
rename from src/algorithms/LBP_MRF/MEHistogram.cpp
rename to bgslibrary/algorithms/LBP_MRF/MEHistogram.cpp
diff --git a/src/algorithms/LBP_MRF/MEHistogram.hpp b/bgslibrary/algorithms/LBP_MRF/MEHistogram.hpp
similarity index 100%
rename from src/algorithms/LBP_MRF/MEHistogram.hpp
rename to bgslibrary/algorithms/LBP_MRF/MEHistogram.hpp
diff --git a/src/algorithms/LBP_MRF/MEImage.cpp b/bgslibrary/algorithms/LBP_MRF/MEImage.cpp
similarity index 100%
rename from src/algorithms/LBP_MRF/MEImage.cpp
rename to bgslibrary/algorithms/LBP_MRF/MEImage.cpp
diff --git a/src/algorithms/LBP_MRF/MEImage.hpp b/bgslibrary/algorithms/LBP_MRF/MEImage.hpp
similarity index 100%
rename from src/algorithms/LBP_MRF/MEImage.hpp
rename to bgslibrary/algorithms/LBP_MRF/MEImage.hpp
diff --git a/src/algorithms/LBP_MRF/MotionDetection.cpp b/bgslibrary/algorithms/LBP_MRF/MotionDetection.cpp
similarity index 100%
rename from src/algorithms/LBP_MRF/MotionDetection.cpp
rename to bgslibrary/algorithms/LBP_MRF/MotionDetection.cpp
diff --git a/src/algorithms/LBP_MRF/MotionDetection.hpp b/bgslibrary/algorithms/LBP_MRF/MotionDetection.hpp
similarity index 100%
rename from src/algorithms/LBP_MRF/MotionDetection.hpp
rename to bgslibrary/algorithms/LBP_MRF/MotionDetection.hpp
diff --git a/src/algorithms/LBP_MRF/block.h b/bgslibrary/algorithms/LBP_MRF/block.h
similarity index 100%
rename from src/algorithms/LBP_MRF/block.h
rename to bgslibrary/algorithms/LBP_MRF/block.h
diff --git a/src/algorithms/LBP_MRF/graph.cpp b/bgslibrary/algorithms/LBP_MRF/graph.cpp
similarity index 100%
rename from src/algorithms/LBP_MRF/graph.cpp
rename to bgslibrary/algorithms/LBP_MRF/graph.cpp
diff --git a/src/algorithms/LBP_MRF/graph.h b/bgslibrary/algorithms/LBP_MRF/graph.h
similarity index 100%
rename from src/algorithms/LBP_MRF/graph.h
rename to bgslibrary/algorithms/LBP_MRF/graph.h
diff --git a/src/algorithms/LBP_MRF/maxflow.cpp b/bgslibrary/algorithms/LBP_MRF/maxflow.cpp
similarity index 100%
rename from src/algorithms/LBP_MRF/maxflow.cpp
rename to bgslibrary/algorithms/LBP_MRF/maxflow.cpp
diff --git a/src/algorithms/LBSP/BackgroundSubtractorLBSP.cpp b/bgslibrary/algorithms/LBSP/BackgroundSubtractorLBSP.cpp
similarity index 100%
rename from src/algorithms/LBSP/BackgroundSubtractorLBSP.cpp
rename to bgslibrary/algorithms/LBSP/BackgroundSubtractorLBSP.cpp
diff --git a/src/algorithms/LBSP/BackgroundSubtractorLBSP.h b/bgslibrary/algorithms/LBSP/BackgroundSubtractorLBSP.h
similarity index 100%
rename from src/algorithms/LBSP/BackgroundSubtractorLBSP.h
rename to bgslibrary/algorithms/LBSP/BackgroundSubtractorLBSP.h
diff --git a/src/algorithms/LBSP/BackgroundSubtractorLBSP_.cpp b/bgslibrary/algorithms/LBSP/BackgroundSubtractorLBSP_.cpp
similarity index 100%
rename from src/algorithms/LBSP/BackgroundSubtractorLBSP_.cpp
rename to bgslibrary/algorithms/LBSP/BackgroundSubtractorLBSP_.cpp
diff --git a/src/algorithms/LBSP/BackgroundSubtractorLBSP_.h b/bgslibrary/algorithms/LBSP/BackgroundSubtractorLBSP_.h
similarity index 100%
rename from src/algorithms/LBSP/BackgroundSubtractorLBSP_.h
rename to bgslibrary/algorithms/LBSP/BackgroundSubtractorLBSP_.h
diff --git a/src/algorithms/LBSP/BackgroundSubtractorLOBSTER.cpp b/bgslibrary/algorithms/LBSP/BackgroundSubtractorLOBSTER.cpp
similarity index 100%
rename from src/algorithms/LBSP/BackgroundSubtractorLOBSTER.cpp
rename to bgslibrary/algorithms/LBSP/BackgroundSubtractorLOBSTER.cpp
diff --git a/src/algorithms/LBSP/BackgroundSubtractorLOBSTER.h b/bgslibrary/algorithms/LBSP/BackgroundSubtractorLOBSTER.h
similarity index 100%
rename from src/algorithms/LBSP/BackgroundSubtractorLOBSTER.h
rename to bgslibrary/algorithms/LBSP/BackgroundSubtractorLOBSTER.h
diff --git a/src/algorithms/LBSP/BackgroundSubtractorPAWCS.cpp b/bgslibrary/algorithms/LBSP/BackgroundSubtractorPAWCS.cpp
similarity index 100%
rename from src/algorithms/LBSP/BackgroundSubtractorPAWCS.cpp
rename to bgslibrary/algorithms/LBSP/BackgroundSubtractorPAWCS.cpp
diff --git a/src/algorithms/LBSP/BackgroundSubtractorPAWCS.h b/bgslibrary/algorithms/LBSP/BackgroundSubtractorPAWCS.h
similarity index 100%
rename from src/algorithms/LBSP/BackgroundSubtractorPAWCS.h
rename to bgslibrary/algorithms/LBSP/BackgroundSubtractorPAWCS.h
diff --git a/src/algorithms/LBSP/BackgroundSubtractorSuBSENSE.cpp b/bgslibrary/algorithms/LBSP/BackgroundSubtractorSuBSENSE.cpp
similarity index 100%
rename from src/algorithms/LBSP/BackgroundSubtractorSuBSENSE.cpp
rename to bgslibrary/algorithms/LBSP/BackgroundSubtractorSuBSENSE.cpp
diff --git a/src/algorithms/LBSP/BackgroundSubtractorSuBSENSE.h b/bgslibrary/algorithms/LBSP/BackgroundSubtractorSuBSENSE.h
similarity index 100%
rename from src/algorithms/LBSP/BackgroundSubtractorSuBSENSE.h
rename to bgslibrary/algorithms/LBSP/BackgroundSubtractorSuBSENSE.h
diff --git a/src/algorithms/LBSP/DistanceUtils.h b/bgslibrary/algorithms/LBSP/DistanceUtils.h
similarity index 100%
rename from src/algorithms/LBSP/DistanceUtils.h
rename to bgslibrary/algorithms/LBSP/DistanceUtils.h
diff --git a/src/algorithms/LBSP/LBSP.cpp b/bgslibrary/algorithms/LBSP/LBSP.cpp
similarity index 100%
rename from src/algorithms/LBSP/LBSP.cpp
rename to bgslibrary/algorithms/LBSP/LBSP.cpp
diff --git a/src/algorithms/LBSP/LBSP.h b/bgslibrary/algorithms/LBSP/LBSP.h
similarity index 100%
rename from src/algorithms/LBSP/LBSP.h
rename to bgslibrary/algorithms/LBSP/LBSP.h
diff --git a/src/algorithms/LBSP/LBSP_.cpp b/bgslibrary/algorithms/LBSP/LBSP_.cpp
similarity index 100%
rename from src/algorithms/LBSP/LBSP_.cpp
rename to bgslibrary/algorithms/LBSP/LBSP_.cpp
diff --git a/src/algorithms/LBSP/LBSP_.h b/bgslibrary/algorithms/LBSP/LBSP_.h
similarity index 100%
rename from src/algorithms/LBSP/LBSP_.h
rename to bgslibrary/algorithms/LBSP/LBSP_.h
diff --git a/src/algorithms/LBSP/LBSP_16bits_dbcross_1ch.i b/bgslibrary/algorithms/LBSP/LBSP_16bits_dbcross_1ch.i
similarity index 100%
rename from src/algorithms/LBSP/LBSP_16bits_dbcross_1ch.i
rename to bgslibrary/algorithms/LBSP/LBSP_16bits_dbcross_1ch.i
diff --git a/src/algorithms/LBSP/LBSP_16bits_dbcross_3ch1t.i b/bgslibrary/algorithms/LBSP/LBSP_16bits_dbcross_3ch1t.i
similarity index 100%
rename from src/algorithms/LBSP/LBSP_16bits_dbcross_3ch1t.i
rename to bgslibrary/algorithms/LBSP/LBSP_16bits_dbcross_3ch1t.i
diff --git a/src/algorithms/LBSP/LBSP_16bits_dbcross_3ch3t.i b/bgslibrary/algorithms/LBSP/LBSP_16bits_dbcross_3ch3t.i
similarity index 100%
rename from src/algorithms/LBSP/LBSP_16bits_dbcross_3ch3t.i
rename to bgslibrary/algorithms/LBSP/LBSP_16bits_dbcross_3ch3t.i
diff --git a/src/algorithms/LBSP/LBSP_16bits_dbcross_s3ch.i b/bgslibrary/algorithms/LBSP/LBSP_16bits_dbcross_s3ch.i
similarity index 100%
rename from src/algorithms/LBSP/LBSP_16bits_dbcross_s3ch.i
rename to bgslibrary/algorithms/LBSP/LBSP_16bits_dbcross_s3ch.i
diff --git a/src/algorithms/LBSP/RandUtils.h b/bgslibrary/algorithms/LBSP/RandUtils.h
similarity index 100%
rename from src/algorithms/LBSP/RandUtils.h
rename to bgslibrary/algorithms/LBSP/RandUtils.h
diff --git a/src/algorithms/LBSimpleGaussian.cpp b/bgslibrary/algorithms/LBSimpleGaussian.cpp
similarity index 100%
rename from src/algorithms/LBSimpleGaussian.cpp
rename to bgslibrary/algorithms/LBSimpleGaussian.cpp
diff --git a/src/algorithms/LBSimpleGaussian.h b/bgslibrary/algorithms/LBSimpleGaussian.h
similarity index 100%
rename from src/algorithms/LBSimpleGaussian.h
rename to bgslibrary/algorithms/LBSimpleGaussian.h
diff --git a/src/algorithms/LOBSTER.cpp b/bgslibrary/algorithms/LOBSTER.cpp
similarity index 100%
rename from src/algorithms/LOBSTER.cpp
rename to bgslibrary/algorithms/LOBSTER.cpp
diff --git a/src/algorithms/LOBSTER.h b/bgslibrary/algorithms/LOBSTER.h
similarity index 100%
rename from src/algorithms/LOBSTER.h
rename to bgslibrary/algorithms/LOBSTER.h
diff --git a/src/algorithms/MixtureOfGaussianV1.cpp b/bgslibrary/algorithms/MixtureOfGaussianV1.cpp
similarity index 100%
rename from src/algorithms/MixtureOfGaussianV1.cpp
rename to bgslibrary/algorithms/MixtureOfGaussianV1.cpp
diff --git a/src/algorithms/MixtureOfGaussianV1.h b/bgslibrary/algorithms/MixtureOfGaussianV1.h
similarity index 100%
rename from src/algorithms/MixtureOfGaussianV1.h
rename to bgslibrary/algorithms/MixtureOfGaussianV1.h
diff --git a/src/algorithms/MixtureOfGaussianV2.cpp b/bgslibrary/algorithms/MixtureOfGaussianV2.cpp
similarity index 100%
rename from src/algorithms/MixtureOfGaussianV2.cpp
rename to bgslibrary/algorithms/MixtureOfGaussianV2.cpp
diff --git a/src/algorithms/MixtureOfGaussianV2.h b/bgslibrary/algorithms/MixtureOfGaussianV2.h
similarity index 100%
rename from src/algorithms/MixtureOfGaussianV2.h
rename to bgslibrary/algorithms/MixtureOfGaussianV2.h
diff --git a/src/algorithms/MultiCue.cpp b/bgslibrary/algorithms/MultiCue.cpp
similarity index 100%
rename from src/algorithms/MultiCue.cpp
rename to bgslibrary/algorithms/MultiCue.cpp
diff --git a/src/algorithms/MultiCue.h b/bgslibrary/algorithms/MultiCue.h
similarity index 100%
rename from src/algorithms/MultiCue.h
rename to bgslibrary/algorithms/MultiCue.h
diff --git a/src/algorithms/MultiLayer.cpp b/bgslibrary/algorithms/MultiLayer.cpp
similarity index 100%
rename from src/algorithms/MultiLayer.cpp
rename to bgslibrary/algorithms/MultiLayer.cpp
diff --git a/src/algorithms/MultiLayer.h b/bgslibrary/algorithms/MultiLayer.h
similarity index 100%
rename from src/algorithms/MultiLayer.h
rename to bgslibrary/algorithms/MultiLayer.h
diff --git a/src/algorithms/MultiLayer/BGS.h b/bgslibrary/algorithms/MultiLayer/BGS.h
similarity index 100%
rename from src/algorithms/MultiLayer/BGS.h
rename to bgslibrary/algorithms/MultiLayer/BGS.h
diff --git a/src/algorithms/MultiLayer/BackgroundSubtractionAPI.h b/bgslibrary/algorithms/MultiLayer/BackgroundSubtractionAPI.h
similarity index 100%
rename from src/algorithms/MultiLayer/BackgroundSubtractionAPI.h
rename to bgslibrary/algorithms/MultiLayer/BackgroundSubtractionAPI.h
diff --git a/src/algorithms/MultiLayer/BlobExtraction.cpp b/bgslibrary/algorithms/MultiLayer/BlobExtraction.cpp
similarity index 100%
rename from src/algorithms/MultiLayer/BlobExtraction.cpp
rename to bgslibrary/algorithms/MultiLayer/BlobExtraction.cpp
diff --git a/src/algorithms/MultiLayer/BlobExtraction.h b/bgslibrary/algorithms/MultiLayer/BlobExtraction.h
similarity index 100%
rename from src/algorithms/MultiLayer/BlobExtraction.h
rename to bgslibrary/algorithms/MultiLayer/BlobExtraction.h
diff --git a/src/algorithms/MultiLayer/BlobLibraryConfiguration.h b/bgslibrary/algorithms/MultiLayer/BlobLibraryConfiguration.h
similarity index 100%
rename from src/algorithms/MultiLayer/BlobLibraryConfiguration.h
rename to bgslibrary/algorithms/MultiLayer/BlobLibraryConfiguration.h
diff --git a/src/algorithms/MultiLayer/BlobResult.cpp b/bgslibrary/algorithms/MultiLayer/BlobResult.cpp
similarity index 100%
rename from src/algorithms/MultiLayer/BlobResult.cpp
rename to bgslibrary/algorithms/MultiLayer/BlobResult.cpp
diff --git a/src/algorithms/MultiLayer/BlobResult.h b/bgslibrary/algorithms/MultiLayer/BlobResult.h
similarity index 100%
rename from src/algorithms/MultiLayer/BlobResult.h
rename to bgslibrary/algorithms/MultiLayer/BlobResult.h
diff --git a/src/algorithms/MultiLayer/CMultiLayerBGS.cpp b/bgslibrary/algorithms/MultiLayer/CMultiLayerBGS.cpp
similarity index 100%
rename from src/algorithms/MultiLayer/CMultiLayerBGS.cpp
rename to bgslibrary/algorithms/MultiLayer/CMultiLayerBGS.cpp
diff --git a/src/algorithms/MultiLayer/CMultiLayerBGS.h b/bgslibrary/algorithms/MultiLayer/CMultiLayerBGS.h
similarity index 100%
rename from src/algorithms/MultiLayer/CMultiLayerBGS.h
rename to bgslibrary/algorithms/MultiLayer/CMultiLayerBGS.h
diff --git a/src/algorithms/MultiLayer/LocalBinaryPattern.cpp b/bgslibrary/algorithms/MultiLayer/LocalBinaryPattern.cpp
similarity index 100%
rename from src/algorithms/MultiLayer/LocalBinaryPattern.cpp
rename to bgslibrary/algorithms/MultiLayer/LocalBinaryPattern.cpp
diff --git a/src/algorithms/MultiLayer/LocalBinaryPattern.h b/bgslibrary/algorithms/MultiLayer/LocalBinaryPattern.h
similarity index 100%
rename from src/algorithms/MultiLayer/LocalBinaryPattern.h
rename to bgslibrary/algorithms/MultiLayer/LocalBinaryPattern.h
diff --git a/src/algorithms/MultiLayer/OpenCvDataConversion.h b/bgslibrary/algorithms/MultiLayer/OpenCvDataConversion.h
similarity index 100%
rename from src/algorithms/MultiLayer/OpenCvDataConversion.h
rename to bgslibrary/algorithms/MultiLayer/OpenCvDataConversion.h
diff --git a/src/algorithms/MultiLayer/OpenCvLegacyIncludes.h b/bgslibrary/algorithms/MultiLayer/OpenCvLegacyIncludes.h
similarity index 100%
rename from src/algorithms/MultiLayer/OpenCvLegacyIncludes.h
rename to bgslibrary/algorithms/MultiLayer/OpenCvLegacyIncludes.h
diff --git a/src/algorithms/MultiLayer/blob.cpp b/bgslibrary/algorithms/MultiLayer/blob.cpp
similarity index 100%
rename from src/algorithms/MultiLayer/blob.cpp
rename to bgslibrary/algorithms/MultiLayer/blob.cpp
diff --git a/src/algorithms/MultiLayer/blob.h b/bgslibrary/algorithms/MultiLayer/blob.h
similarity index 100%
rename from src/algorithms/MultiLayer/blob.h
rename to bgslibrary/algorithms/MultiLayer/blob.h
diff --git a/src/algorithms/PAWCS.cpp b/bgslibrary/algorithms/PAWCS.cpp
similarity index 100%
rename from src/algorithms/PAWCS.cpp
rename to bgslibrary/algorithms/PAWCS.cpp
diff --git a/src/algorithms/PAWCS.h b/bgslibrary/algorithms/PAWCS.h
similarity index 100%
rename from src/algorithms/PAWCS.h
rename to bgslibrary/algorithms/PAWCS.h
diff --git a/src/algorithms/PBAS/PBAS.cpp b/bgslibrary/algorithms/PBAS/PBAS.cpp
similarity index 100%
rename from src/algorithms/PBAS/PBAS.cpp
rename to bgslibrary/algorithms/PBAS/PBAS.cpp
diff --git a/src/algorithms/PBAS/PBAS.h b/bgslibrary/algorithms/PBAS/PBAS.h
similarity index 100%
rename from src/algorithms/PBAS/PBAS.h
rename to bgslibrary/algorithms/PBAS/PBAS.h
diff --git a/src/algorithms/PixelBasedAdaptiveSegmenter.cpp b/bgslibrary/algorithms/PixelBasedAdaptiveSegmenter.cpp
similarity index 100%
rename from src/algorithms/PixelBasedAdaptiveSegmenter.cpp
rename to bgslibrary/algorithms/PixelBasedAdaptiveSegmenter.cpp
diff --git a/src/algorithms/PixelBasedAdaptiveSegmenter.h b/bgslibrary/algorithms/PixelBasedAdaptiveSegmenter.h
similarity index 100%
rename from src/algorithms/PixelBasedAdaptiveSegmenter.h
rename to bgslibrary/algorithms/PixelBasedAdaptiveSegmenter.h
diff --git a/src/algorithms/SigmaDelta.cpp b/bgslibrary/algorithms/SigmaDelta.cpp
similarity index 100%
rename from src/algorithms/SigmaDelta.cpp
rename to bgslibrary/algorithms/SigmaDelta.cpp
diff --git a/src/algorithms/SigmaDelta.h b/bgslibrary/algorithms/SigmaDelta.h
similarity index 100%
rename from src/algorithms/SigmaDelta.h
rename to bgslibrary/algorithms/SigmaDelta.h
diff --git a/src/algorithms/SigmaDelta/sdLaMa091.cpp b/bgslibrary/algorithms/SigmaDelta/sdLaMa091.cpp
similarity index 100%
rename from src/algorithms/SigmaDelta/sdLaMa091.cpp
rename to bgslibrary/algorithms/SigmaDelta/sdLaMa091.cpp
diff --git a/src/algorithms/SigmaDelta/sdLaMa091.h b/bgslibrary/algorithms/SigmaDelta/sdLaMa091.h
similarity index 100%
rename from src/algorithms/SigmaDelta/sdLaMa091.h
rename to bgslibrary/algorithms/SigmaDelta/sdLaMa091.h
diff --git a/src/algorithms/StaticFrameDifference.cpp b/bgslibrary/algorithms/StaticFrameDifference.cpp
similarity index 100%
rename from src/algorithms/StaticFrameDifference.cpp
rename to bgslibrary/algorithms/StaticFrameDifference.cpp
diff --git a/src/algorithms/StaticFrameDifference.h b/bgslibrary/algorithms/StaticFrameDifference.h
similarity index 100%
rename from src/algorithms/StaticFrameDifference.h
rename to bgslibrary/algorithms/StaticFrameDifference.h
diff --git a/src/algorithms/SuBSENSE.cpp b/bgslibrary/algorithms/SuBSENSE.cpp
similarity index 100%
rename from src/algorithms/SuBSENSE.cpp
rename to bgslibrary/algorithms/SuBSENSE.cpp
diff --git a/src/algorithms/SuBSENSE.h b/bgslibrary/algorithms/SuBSENSE.h
similarity index 100%
rename from src/algorithms/SuBSENSE.h
rename to bgslibrary/algorithms/SuBSENSE.h
diff --git a/src/algorithms/T2F/MRF.cpp b/bgslibrary/algorithms/T2F/MRF.cpp
similarity index 100%
rename from src/algorithms/T2F/MRF.cpp
rename to bgslibrary/algorithms/T2F/MRF.cpp
diff --git a/src/algorithms/T2F/MRF.h b/bgslibrary/algorithms/T2F/MRF.h
similarity index 100%
rename from src/algorithms/T2F/MRF.h
rename to bgslibrary/algorithms/T2F/MRF.h
diff --git a/src/algorithms/T2F/T2FGMM.cpp b/bgslibrary/algorithms/T2F/T2FGMM.cpp
similarity index 100%
rename from src/algorithms/T2F/T2FGMM.cpp
rename to bgslibrary/algorithms/T2F/T2FGMM.cpp
diff --git a/src/algorithms/T2F/T2FGMM.h b/bgslibrary/algorithms/T2F/T2FGMM.h
similarity index 100%
rename from src/algorithms/T2F/T2FGMM.h
rename to bgslibrary/algorithms/T2F/T2FGMM.h
diff --git a/src/algorithms/T2F/T2FMRF.cpp b/bgslibrary/algorithms/T2F/T2FMRF.cpp
similarity index 100%
rename from src/algorithms/T2F/T2FMRF.cpp
rename to bgslibrary/algorithms/T2F/T2FMRF.cpp
diff --git a/src/algorithms/T2F/T2FMRF.h b/bgslibrary/algorithms/T2F/T2FMRF.h
similarity index 100%
rename from src/algorithms/T2F/T2FMRF.h
rename to bgslibrary/algorithms/T2F/T2FMRF.h
diff --git a/src/algorithms/T2FGMM_UM.cpp b/bgslibrary/algorithms/T2FGMM_UM.cpp
similarity index 100%
rename from src/algorithms/T2FGMM_UM.cpp
rename to bgslibrary/algorithms/T2FGMM_UM.cpp
diff --git a/src/algorithms/T2FGMM_UM.h b/bgslibrary/algorithms/T2FGMM_UM.h
similarity index 100%
rename from src/algorithms/T2FGMM_UM.h
rename to bgslibrary/algorithms/T2FGMM_UM.h
diff --git a/src/algorithms/T2FGMM_UV.cpp b/bgslibrary/algorithms/T2FGMM_UV.cpp
similarity index 100%
rename from src/algorithms/T2FGMM_UV.cpp
rename to bgslibrary/algorithms/T2FGMM_UV.cpp
diff --git a/src/algorithms/T2FGMM_UV.h b/bgslibrary/algorithms/T2FGMM_UV.h
similarity index 100%
rename from src/algorithms/T2FGMM_UV.h
rename to bgslibrary/algorithms/T2FGMM_UV.h
diff --git a/src/algorithms/T2FMRF_UM.cpp b/bgslibrary/algorithms/T2FMRF_UM.cpp
similarity index 100%
rename from src/algorithms/T2FMRF_UM.cpp
rename to bgslibrary/algorithms/T2FMRF_UM.cpp
diff --git a/src/algorithms/T2FMRF_UM.h b/bgslibrary/algorithms/T2FMRF_UM.h
similarity index 100%
rename from src/algorithms/T2FMRF_UM.h
rename to bgslibrary/algorithms/T2FMRF_UM.h
diff --git a/src/algorithms/T2FMRF_UV.cpp b/bgslibrary/algorithms/T2FMRF_UV.cpp
similarity index 100%
rename from src/algorithms/T2FMRF_UV.cpp
rename to bgslibrary/algorithms/T2FMRF_UV.cpp
diff --git a/src/algorithms/T2FMRF_UV.h b/bgslibrary/algorithms/T2FMRF_UV.h
similarity index 100%
rename from src/algorithms/T2FMRF_UV.h
rename to bgslibrary/algorithms/T2FMRF_UV.h
diff --git a/src/algorithms/TwoPoints.cpp b/bgslibrary/algorithms/TwoPoints.cpp
similarity index 100%
rename from src/algorithms/TwoPoints.cpp
rename to bgslibrary/algorithms/TwoPoints.cpp
diff --git a/src/algorithms/TwoPoints.h b/bgslibrary/algorithms/TwoPoints.h
similarity index 100%
rename from src/algorithms/TwoPoints.h
rename to bgslibrary/algorithms/TwoPoints.h
diff --git a/src/algorithms/TwoPoints/two_points.cpp b/bgslibrary/algorithms/TwoPoints/two_points.cpp
similarity index 100%
rename from src/algorithms/TwoPoints/two_points.cpp
rename to bgslibrary/algorithms/TwoPoints/two_points.cpp
diff --git a/src/algorithms/TwoPoints/two_points.h b/bgslibrary/algorithms/TwoPoints/two_points.h
similarity index 100%
rename from src/algorithms/TwoPoints/two_points.h
rename to bgslibrary/algorithms/TwoPoints/two_points.h
diff --git a/src/algorithms/ViBe.cpp b/bgslibrary/algorithms/ViBe.cpp
similarity index 100%
rename from src/algorithms/ViBe.cpp
rename to bgslibrary/algorithms/ViBe.cpp
diff --git a/src/algorithms/ViBe.h b/bgslibrary/algorithms/ViBe.h
similarity index 100%
rename from src/algorithms/ViBe.h
rename to bgslibrary/algorithms/ViBe.h
diff --git a/src/algorithms/ViBe/LICENSE b/bgslibrary/algorithms/ViBe/LICENSE
similarity index 100%
rename from src/algorithms/ViBe/LICENSE
rename to bgslibrary/algorithms/ViBe/LICENSE
diff --git a/src/algorithms/ViBe/vibe-background-sequential.cpp b/bgslibrary/algorithms/ViBe/vibe-background-sequential.cpp
similarity index 100%
rename from src/algorithms/ViBe/vibe-background-sequential.cpp
rename to bgslibrary/algorithms/ViBe/vibe-background-sequential.cpp
diff --git a/src/algorithms/ViBe/vibe-background-sequential.h b/bgslibrary/algorithms/ViBe/vibe-background-sequential.h
similarity index 100%
rename from src/algorithms/ViBe/vibe-background-sequential.h
rename to bgslibrary/algorithms/ViBe/vibe-background-sequential.h
diff --git a/src/algorithms/VuMeter.cpp b/bgslibrary/algorithms/VuMeter.cpp
similarity index 100%
rename from src/algorithms/VuMeter.cpp
rename to bgslibrary/algorithms/VuMeter.cpp
diff --git a/src/algorithms/VuMeter.h b/bgslibrary/algorithms/VuMeter.h
similarity index 100%
rename from src/algorithms/VuMeter.h
rename to bgslibrary/algorithms/VuMeter.h
diff --git a/src/algorithms/VuMeter/TBackground.cpp b/bgslibrary/algorithms/VuMeter/TBackground.cpp
similarity index 100%
rename from src/algorithms/VuMeter/TBackground.cpp
rename to bgslibrary/algorithms/VuMeter/TBackground.cpp
diff --git a/src/algorithms/VuMeter/TBackground.h b/bgslibrary/algorithms/VuMeter/TBackground.h
similarity index 100%
rename from src/algorithms/VuMeter/TBackground.h
rename to bgslibrary/algorithms/VuMeter/TBackground.h
diff --git a/src/algorithms/VuMeter/TBackgroundVuMeter.cpp b/bgslibrary/algorithms/VuMeter/TBackgroundVuMeter.cpp
similarity index 100%
rename from src/algorithms/VuMeter/TBackgroundVuMeter.cpp
rename to bgslibrary/algorithms/VuMeter/TBackgroundVuMeter.cpp
diff --git a/src/algorithms/VuMeter/TBackgroundVuMeter.h b/bgslibrary/algorithms/VuMeter/TBackgroundVuMeter.h
similarity index 100%
rename from src/algorithms/VuMeter/TBackgroundVuMeter.h
rename to bgslibrary/algorithms/VuMeter/TBackgroundVuMeter.h
diff --git a/src/algorithms/WeightedMovingMean.cpp b/bgslibrary/algorithms/WeightedMovingMean.cpp
similarity index 100%
rename from src/algorithms/WeightedMovingMean.cpp
rename to bgslibrary/algorithms/WeightedMovingMean.cpp
diff --git a/src/algorithms/WeightedMovingMean.h b/bgslibrary/algorithms/WeightedMovingMean.h
similarity index 100%
rename from src/algorithms/WeightedMovingMean.h
rename to bgslibrary/algorithms/WeightedMovingMean.h
diff --git a/src/algorithms/WeightedMovingVariance.cpp b/bgslibrary/algorithms/WeightedMovingVariance.cpp
similarity index 100%
rename from src/algorithms/WeightedMovingVariance.cpp
rename to bgslibrary/algorithms/WeightedMovingVariance.cpp
diff --git a/src/algorithms/WeightedMovingVariance.h b/bgslibrary/algorithms/WeightedMovingVariance.h
similarity index 100%
rename from src/algorithms/WeightedMovingVariance.h
rename to bgslibrary/algorithms/WeightedMovingVariance.h
diff --git a/src/algorithms/_template_/MyBGS.cpp b/bgslibrary/algorithms/_template_/MyBGS.cpp
similarity index 100%
rename from src/algorithms/_template_/MyBGS.cpp
rename to bgslibrary/algorithms/_template_/MyBGS.cpp
diff --git a/src/algorithms/_template_/MyBGS.h b/bgslibrary/algorithms/_template_/MyBGS.h
similarity index 100%
rename from src/algorithms/_template_/MyBGS.h
rename to bgslibrary/algorithms/_template_/MyBGS.h
diff --git a/src/algorithms/algorithms.cpp b/bgslibrary/algorithms/algorithms.cpp
similarity index 100%
rename from src/algorithms/algorithms.cpp
rename to bgslibrary/algorithms/algorithms.cpp
diff --git a/src/algorithms/algorithms.h b/bgslibrary/algorithms/algorithms.h
similarity index 100%
rename from src/algorithms/algorithms.h
rename to bgslibrary/algorithms/algorithms.h
diff --git a/src/algorithms/dp/AdaptiveMedianBGS.cpp b/bgslibrary/algorithms/dp/AdaptiveMedianBGS.cpp
similarity index 100%
rename from src/algorithms/dp/AdaptiveMedianBGS.cpp
rename to bgslibrary/algorithms/dp/AdaptiveMedianBGS.cpp
diff --git a/src/algorithms/dp/AdaptiveMedianBGS.h b/bgslibrary/algorithms/dp/AdaptiveMedianBGS.h
similarity index 100%
rename from src/algorithms/dp/AdaptiveMedianBGS.h
rename to bgslibrary/algorithms/dp/AdaptiveMedianBGS.h
diff --git a/src/algorithms/dp/Bgs.h b/bgslibrary/algorithms/dp/Bgs.h
similarity index 100%
rename from src/algorithms/dp/Bgs.h
rename to bgslibrary/algorithms/dp/Bgs.h
diff --git a/src/algorithms/dp/BgsParams.h b/bgslibrary/algorithms/dp/BgsParams.h
similarity index 100%
rename from src/algorithms/dp/BgsParams.h
rename to bgslibrary/algorithms/dp/BgsParams.h
diff --git a/src/algorithms/dp/Eigenbackground.cpp b/bgslibrary/algorithms/dp/Eigenbackground.cpp
similarity index 100%
rename from src/algorithms/dp/Eigenbackground.cpp
rename to bgslibrary/algorithms/dp/Eigenbackground.cpp
diff --git a/src/algorithms/dp/Eigenbackground.h b/bgslibrary/algorithms/dp/Eigenbackground.h
similarity index 100%
rename from src/algorithms/dp/Eigenbackground.h
rename to bgslibrary/algorithms/dp/Eigenbackground.h
diff --git a/src/algorithms/dp/Error.cpp b/bgslibrary/algorithms/dp/Error.cpp
similarity index 100%
rename from src/algorithms/dp/Error.cpp
rename to bgslibrary/algorithms/dp/Error.cpp
diff --git a/src/algorithms/dp/Error.h b/bgslibrary/algorithms/dp/Error.h
similarity index 100%
rename from src/algorithms/dp/Error.h
rename to bgslibrary/algorithms/dp/Error.h
diff --git a/src/algorithms/dp/GrimsonGMM.cpp b/bgslibrary/algorithms/dp/GrimsonGMM.cpp
similarity index 100%
rename from src/algorithms/dp/GrimsonGMM.cpp
rename to bgslibrary/algorithms/dp/GrimsonGMM.cpp
diff --git a/src/algorithms/dp/GrimsonGMM.h b/bgslibrary/algorithms/dp/GrimsonGMM.h
similarity index 100%
rename from src/algorithms/dp/GrimsonGMM.h
rename to bgslibrary/algorithms/dp/GrimsonGMM.h
diff --git a/src/algorithms/dp/Image.cpp b/bgslibrary/algorithms/dp/Image.cpp
similarity index 100%
rename from src/algorithms/dp/Image.cpp
rename to bgslibrary/algorithms/dp/Image.cpp
diff --git a/src/algorithms/dp/Image.h b/bgslibrary/algorithms/dp/Image.h
similarity index 100%
rename from src/algorithms/dp/Image.h
rename to bgslibrary/algorithms/dp/Image.h
diff --git a/src/algorithms/dp/MeanBGS.cpp b/bgslibrary/algorithms/dp/MeanBGS.cpp
similarity index 100%
rename from src/algorithms/dp/MeanBGS.cpp
rename to bgslibrary/algorithms/dp/MeanBGS.cpp
diff --git a/src/algorithms/dp/MeanBGS.h b/bgslibrary/algorithms/dp/MeanBGS.h
similarity index 100%
rename from src/algorithms/dp/MeanBGS.h
rename to bgslibrary/algorithms/dp/MeanBGS.h
diff --git a/src/algorithms/dp/PratiMediodBGS.cpp b/bgslibrary/algorithms/dp/PratiMediodBGS.cpp
similarity index 100%
rename from src/algorithms/dp/PratiMediodBGS.cpp
rename to bgslibrary/algorithms/dp/PratiMediodBGS.cpp
diff --git a/src/algorithms/dp/PratiMediodBGS.h b/bgslibrary/algorithms/dp/PratiMediodBGS.h
similarity index 100%
rename from src/algorithms/dp/PratiMediodBGS.h
rename to bgslibrary/algorithms/dp/PratiMediodBGS.h
diff --git a/src/algorithms/dp/TextureBGS.cpp b/bgslibrary/algorithms/dp/TextureBGS.cpp
similarity index 100%
rename from src/algorithms/dp/TextureBGS.cpp
rename to bgslibrary/algorithms/dp/TextureBGS.cpp
diff --git a/src/algorithms/dp/TextureBGS.h b/bgslibrary/algorithms/dp/TextureBGS.h
similarity index 100%
rename from src/algorithms/dp/TextureBGS.h
rename to bgslibrary/algorithms/dp/TextureBGS.h
diff --git a/src/algorithms/dp/WrenGA.cpp b/bgslibrary/algorithms/dp/WrenGA.cpp
similarity index 100%
rename from src/algorithms/dp/WrenGA.cpp
rename to bgslibrary/algorithms/dp/WrenGA.cpp
diff --git a/src/algorithms/dp/WrenGA.h b/bgslibrary/algorithms/dp/WrenGA.h
similarity index 100%
rename from src/algorithms/dp/WrenGA.h
rename to bgslibrary/algorithms/dp/WrenGA.h
diff --git a/src/algorithms/dp/ZivkovicAGMM.cpp b/bgslibrary/algorithms/dp/ZivkovicAGMM.cpp
similarity index 100%
rename from src/algorithms/dp/ZivkovicAGMM.cpp
rename to bgslibrary/algorithms/dp/ZivkovicAGMM.cpp
diff --git a/src/algorithms/dp/ZivkovicAGMM.h b/bgslibrary/algorithms/dp/ZivkovicAGMM.h
similarity index 100%
rename from src/algorithms/dp/ZivkovicAGMM.h
rename to bgslibrary/algorithms/dp/ZivkovicAGMM.h
diff --git a/src/algorithms/lb/BGModel.cpp b/bgslibrary/algorithms/lb/BGModel.cpp
similarity index 100%
rename from src/algorithms/lb/BGModel.cpp
rename to bgslibrary/algorithms/lb/BGModel.cpp
diff --git a/src/algorithms/lb/BGModel.h b/bgslibrary/algorithms/lb/BGModel.h
similarity index 100%
rename from src/algorithms/lb/BGModel.h
rename to bgslibrary/algorithms/lb/BGModel.h
diff --git a/src/algorithms/lb/BGModelFuzzyGauss.cpp b/bgslibrary/algorithms/lb/BGModelFuzzyGauss.cpp
similarity index 100%
rename from src/algorithms/lb/BGModelFuzzyGauss.cpp
rename to bgslibrary/algorithms/lb/BGModelFuzzyGauss.cpp
diff --git a/src/algorithms/lb/BGModelFuzzyGauss.h b/bgslibrary/algorithms/lb/BGModelFuzzyGauss.h
similarity index 100%
rename from src/algorithms/lb/BGModelFuzzyGauss.h
rename to bgslibrary/algorithms/lb/BGModelFuzzyGauss.h
diff --git a/src/algorithms/lb/BGModelFuzzySom.cpp b/bgslibrary/algorithms/lb/BGModelFuzzySom.cpp
similarity index 100%
rename from src/algorithms/lb/BGModelFuzzySom.cpp
rename to bgslibrary/algorithms/lb/BGModelFuzzySom.cpp
diff --git a/src/algorithms/lb/BGModelFuzzySom.h b/bgslibrary/algorithms/lb/BGModelFuzzySom.h
similarity index 100%
rename from src/algorithms/lb/BGModelFuzzySom.h
rename to bgslibrary/algorithms/lb/BGModelFuzzySom.h
diff --git a/src/algorithms/lb/BGModelGauss.cpp b/bgslibrary/algorithms/lb/BGModelGauss.cpp
similarity index 100%
rename from src/algorithms/lb/BGModelGauss.cpp
rename to bgslibrary/algorithms/lb/BGModelGauss.cpp
diff --git a/src/algorithms/lb/BGModelGauss.h b/bgslibrary/algorithms/lb/BGModelGauss.h
similarity index 100%
rename from src/algorithms/lb/BGModelGauss.h
rename to bgslibrary/algorithms/lb/BGModelGauss.h
diff --git a/src/algorithms/lb/BGModelMog.cpp b/bgslibrary/algorithms/lb/BGModelMog.cpp
similarity index 100%
rename from src/algorithms/lb/BGModelMog.cpp
rename to bgslibrary/algorithms/lb/BGModelMog.cpp
diff --git a/src/algorithms/lb/BGModelMog.h b/bgslibrary/algorithms/lb/BGModelMog.h
similarity index 100%
rename from src/algorithms/lb/BGModelMog.h
rename to bgslibrary/algorithms/lb/BGModelMog.h
diff --git a/src/algorithms/lb/BGModelSom.cpp b/bgslibrary/algorithms/lb/BGModelSom.cpp
similarity index 100%
rename from src/algorithms/lb/BGModelSom.cpp
rename to bgslibrary/algorithms/lb/BGModelSom.cpp
diff --git a/src/algorithms/lb/BGModelSom.h b/bgslibrary/algorithms/lb/BGModelSom.h
similarity index 100%
rename from src/algorithms/lb/BGModelSom.h
rename to bgslibrary/algorithms/lb/BGModelSom.h
diff --git a/src/algorithms/lb/Types.h b/bgslibrary/algorithms/lb/Types.h
similarity index 100%
rename from src/algorithms/lb/Types.h
rename to bgslibrary/algorithms/lb/Types.h
diff --git a/src/tools/ForegroundMaskAnalysis.cpp b/bgslibrary/tools/ForegroundMaskAnalysis.cpp
similarity index 100%
rename from src/tools/ForegroundMaskAnalysis.cpp
rename to bgslibrary/tools/ForegroundMaskAnalysis.cpp
diff --git a/src/tools/ForegroundMaskAnalysis.h b/bgslibrary/tools/ForegroundMaskAnalysis.h
similarity index 100%
rename from src/tools/ForegroundMaskAnalysis.h
rename to bgslibrary/tools/ForegroundMaskAnalysis.h
diff --git a/src/tools/FuzzyUtils.cpp b/bgslibrary/tools/FuzzyUtils.cpp
similarity index 100%
rename from src/tools/FuzzyUtils.cpp
rename to bgslibrary/tools/FuzzyUtils.cpp
diff --git a/src/tools/FuzzyUtils.h b/bgslibrary/tools/FuzzyUtils.h
similarity index 100%
rename from src/tools/FuzzyUtils.h
rename to bgslibrary/tools/FuzzyUtils.h
diff --git a/src/tools/PerformanceUtils.cpp b/bgslibrary/tools/PerformanceUtils.cpp
similarity index 100%
rename from src/tools/PerformanceUtils.cpp
rename to bgslibrary/tools/PerformanceUtils.cpp
diff --git a/src/tools/PerformanceUtils.h b/bgslibrary/tools/PerformanceUtils.h
similarity index 100%
rename from src/tools/PerformanceUtils.h
rename to bgslibrary/tools/PerformanceUtils.h
diff --git a/src/tools/PixelUtils.cpp b/bgslibrary/tools/PixelUtils.cpp
similarity index 100%
rename from src/tools/PixelUtils.cpp
rename to bgslibrary/tools/PixelUtils.cpp
diff --git a/src/tools/PixelUtils.h b/bgslibrary/tools/PixelUtils.h
similarity index 100%
rename from src/tools/PixelUtils.h
rename to bgslibrary/tools/PixelUtils.h
diff --git a/src/utils/GenericKeys.h b/bgslibrary/utils/GenericKeys.h
similarity index 100%
rename from src/utils/GenericKeys.h
rename to bgslibrary/utils/GenericKeys.h
diff --git a/src/utils/GenericMacros.h b/bgslibrary/utils/GenericMacros.h
similarity index 100%
rename from src/utils/GenericMacros.h
rename to bgslibrary/utils/GenericMacros.h
diff --git a/src/utils/ILoadSaveConfig.h b/bgslibrary/utils/ILoadSaveConfig.h
similarity index 100%
rename from src/utils/ILoadSaveConfig.h
rename to bgslibrary/utils/ILoadSaveConfig.h
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index 03296d9d08ca4a14eb58df37cceb5d9af5ac15fc..e581ce3ced53873892c15ba31b339b67147750c7 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -79,21 +79,21 @@ endif()
 file(GLOB demo Demo.cpp)
 file(GLOB demo2 Demo2.cpp)
 
-file(GLOB_RECURSE tools_src ../src/tools/*.cpp ../src/tools/*.c)
-file(GLOB_RECURSE tools_inc ../src/tools/*.h ../src/tools/*.hpp)
+file(GLOB_RECURSE tools_src ../bgslibrary/tools/*.cpp ../bgslibrary/tools/*.c)
+file(GLOB_RECURSE tools_inc ../bgslibrary/tools/*.h ../bgslibrary/tools/*.hpp)
 
-file(GLOB_RECURSE utils_src ../src/utils/*.cpp ../src/utils/*.c)
-file(GLOB_RECURSE utils_inc ../src/utils/*.h ../src/utils/*.hpp)
+file(GLOB_RECURSE utils_src ../bgslibrary/utils/*.cpp ../bgslibrary/utils/*.c)
+file(GLOB_RECURSE utils_inc ../bgslibrary/utils/*.h ../bgslibrary/utils/*.hpp)
 
-file(GLOB_RECURSE bgs_src ../src/algorithms/*.cpp ../src/algorithms/*.c)
-file(GLOB_RECURSE bgs_inc ../src/algorithms/*.h ../src/algorithms/*.hpp)
+file(GLOB_RECURSE bgs_src ../bgslibrary/algorithms/*.cpp ../bgslibrary/algorithms/*.c)
+file(GLOB_RECURSE bgs_inc ../bgslibrary/algorithms/*.h ../bgslibrary/algorithms/*.hpp)
 
 include_directories(${CMAKE_CURRENT_SOURCE_DIR})
 include_directories(${OpenCV_INCLUDE_DIRS})
 
 # GMG is not available in older OpenCV versions
 if(${OpenCV_VERSION} VERSION_LESS 2.4.3)
-  file(GLOB gmg ../src/algorithms/GMG.cpp)
+  file(GLOB gmg ../bgslibrary/algorithms/GMG.cpp)
   list(REMOVE_ITEM bgs_src ${gmg})
 endif()
 
diff --git a/examples/Demo.cpp b/examples/Demo.cpp
index 802fec54df3986fc26233832c9337ca930c43cea..bb7f6d6457b3e8218ffc3584363b8212d8153704 100644
--- a/examples/Demo.cpp
+++ b/examples/Demo.cpp
@@ -4,7 +4,7 @@
 #include <vector>
 #include <opencv2/opencv.hpp>
 
-#include "../src/algorithms/algorithms.h"
+#include <../bgslibrary/algorithms/algorithms.h>
 
 #if CV_MAJOR_VERSION >= 4
 #define CV_CAP_PROP_POS_FRAMES cv::CAP_PROP_POS_FRAMES
diff --git a/examples/Demo2.cpp b/examples/Demo2.cpp
index bc72a3fa1810fe103a6386e8982571e5b75d6bc8..e50877798fadd206b6a814e2a9de459204595930 100644
--- a/examples/Demo2.cpp
+++ b/examples/Demo2.cpp
@@ -4,7 +4,7 @@
 #include <vector>
 #include <opencv2/opencv.hpp>
 
-#include "../src/algorithms/algorithms.h"
+#include "../bgslibrary/algorithms/algorithms.h"
 
 #if CV_MAJOR_VERSION >= 4
 #define CV_LOAD_IMAGE_COLOR cv::IMREAD_COLOR
diff --git a/gui/qt/CMakeLists.txt b/gui/qt/CMakeLists.txt
index 7b962fb65fff8a54fffc3dc8e833534bdb4b62f2..ff81c6bb2fd6490dba1bcd25f5504ba787f1999b 100644
--- a/gui/qt/CMakeLists.txt
+++ b/gui/qt/CMakeLists.txt
@@ -56,14 +56,14 @@ endif()
 file(GLOB main_src *.cpp *.c)
 file(GLOB main_inc *.h *.hpp)
 
-file(GLOB_RECURSE tools_src ../../src/tools/*.cpp ../../src/tools/*.c)
-file(GLOB_RECURSE tools_inc ../../src/tools/*.h ../../src/tools/*.hpp)
+file(GLOB_RECURSE tools_src ../../bgslibrary/tools/*.cpp ../../bgslibrary/tools/*.c)
+file(GLOB_RECURSE tools_inc ../../bgslibrary/tools/*.h ../../bgslibrary/tools/*.hpp)
 
-file(GLOB_RECURSE utils_src ../../src/utils/*.cpp ../../src/utils/*.c)
-file(GLOB_RECURSE utils_inc ../../src/utils/*.h ../../src/utils/*.hpp)
+file(GLOB_RECURSE utils_src ../../bgslibrary/utils/*.cpp ../../bgslibrary/utils/*.c)
+file(GLOB_RECURSE utils_inc ../../bgslibrary/utils/*.h ../../bgslibrary/utils/*.hpp)
 
-file(GLOB_RECURSE bgs_src ../../src/algorithms/*.cpp ../../src/algorithms/*.c)
-file(GLOB_RECURSE bgs_inc ../../src/algorithms/*.h)
+file(GLOB_RECURSE bgs_src ../../bgslibrary/algorithms/*.cpp ../../bgslibrary/algorithms/*.c)
+file(GLOB_RECURSE bgs_inc ../../bgslibrary/algorithms/*.h)
 
 include_directories(${CMAKE_SOURCE_DIR} ${OpenCV_INCLUDE_DIRS})
 
diff --git a/gui/qt/bgslibrary_gui.pro b/gui/qt/bgslibrary_gui.pro
index fd8d7b84a952a9043817b9910fa2be453ae51e6c..ed2a8692b7163ad6d4cdf8e4c1bcb94bdf4fc545 100644
--- a/gui/qt/bgslibrary_gui.pro
+++ b/gui/qt/bgslibrary_gui.pro
@@ -77,22 +77,22 @@ SOURCES += bgslibrary_gui.cpp\
     mainwindow.cpp \
     qt_utils.cpp \
     texteditor.cpp
-SOURCES += $$files("../../src/algorithms/*.cpp", true)
-SOURCES += $$files("../../src/tools/*.cpp", true)
-SOURCES += $$files("../../src/utils/*.cpp", true)
+SOURCES += $$files("../../bgslibrary/algorithms/*.cpp", true)
+SOURCES += $$files("../../bgslibrary/tools/*.cpp", true)
+SOURCES += $$files("../../bgslibrary/utils/*.cpp", true)
 
 HEADERS  += mainwindow.h \
     qt_utils.h \
     texteditor.h
-HEADERS += $$files("../../src/algorithms/*.h", true)
-HEADERS += $$files("../../src/tools/*.h", true)
-HEADERS += $$files("../../src/utils/*.h", true)
+HEADERS += $$files("../../bgslibrary/algorithms/*.h", true)
+HEADERS += $$files("../../bgslibrary/tools/*.h", true)
+HEADERS += $$files("../../bgslibrary/utils/*.h", true)
 
 FORMS    += mainwindow.ui
 
 DISTFILES += \
-    ../../src/algorithms/LBSP/LBSP_16bits_dbcross_1ch.i \
-    ../../src/algorithms/LBSP/LBSP_16bits_dbcross_3ch1t.i \
-    ../../src/algorithms/LBSP/LBSP_16bits_dbcross_3ch3t.i \
-    ../../src/algorithms/LBSP/LBSP_16bits_dbcross_s3ch.i \
-    ../../src/algorithms/ViBe/LICENSE
+    ../../bgslibrary/algorithms/LBSP/LBSP_16bits_dbcross_1ch.i \
+    ../../bgslibrary/algorithms/LBSP/LBSP_16bits_dbcross_3ch1t.i \
+    ../../bgslibrary/algorithms/LBSP/LBSP_16bits_dbcross_3ch3t.i \
+    ../../bgslibrary/algorithms/LBSP/LBSP_16bits_dbcross_s3ch.i \
+    ../../bgslibrary/algorithms/ViBe/LICENSE
diff --git a/gui/qt/mainwindow.h b/gui/qt/mainwindow.h
index 521a7796dc1782a3cb8e1c244f0b0d949341462b..04392938a44bfa6ee8e30e0d6269af92b507d93f 100644
--- a/gui/qt/mainwindow.h
+++ b/gui/qt/mainwindow.h
@@ -27,7 +27,7 @@
 
 #include "qt_utils.h"
 #include "texteditor.h"
-#include "../../src/algorithms/algorithms.h"
+#include "../../bgslibrary/algorithms/algorithms.h"
 
 namespace bgslibrary
 {
diff --git a/modules/pybind11 b/modules/pybind11
index c9d32a81f40ad540015814edf13b29980c63e39c..65bbd4e0b210655a981be91ae2d3daca358f30f8 160000
--- a/modules/pybind11
+++ b/modules/pybind11
@@ -1 +1 @@
-Subproject commit c9d32a81f40ad540015814edf13b29980c63e39c
+Subproject commit 65bbd4e0b210655a981be91ae2d3daca358f30f8
diff --git a/wrapper/java/CMakeLists.txt b/wrapper/java/CMakeLists.txt
index fc044fa89c9151c03cdd314d58479ad018ee9d5e..fb8acb6b979cc2ca6390ed7197527273d58f703a 100644
--- a/wrapper/java/CMakeLists.txt
+++ b/wrapper/java/CMakeLists.txt
@@ -58,12 +58,12 @@ if (OpenCV_FOUND)
   message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")
 endif()
 
-file(GLOB_RECURSE tools_src ../../src/tools/*.cpp ../../src/tools/*.c)
-file(GLOB_RECURSE tools_inc ../../src/tools/*.h ../../src/tools/*.hpp)
-file(GLOB_RECURSE utils_src ../../src/utils/*.cpp ../../src/utils/*.c)
-file(GLOB_RECURSE utils_inc ../../src/utils/*.h ../../src/utils/*.hpp)
-file(GLOB_RECURSE bgs_src ../../src/algorithms/*.cpp ../../src/algorithms/*.c)
-file(GLOB_RECURSE bgs_inc ../../src/algorithms/*.h ../../src/algorithms/*.hpp)
+file(GLOB_RECURSE tools_src ../../bgslibrary/tools/*.cpp ../../bgslibrary/tools/*.c)
+file(GLOB_RECURSE tools_inc ../../bgslibrary/tools/*.h ../../bgslibrary/tools/*.hpp)
+file(GLOB_RECURSE utils_src ../../bgslibrary/utils/*.cpp ../../bgslibrary/utils/*.c)
+file(GLOB_RECURSE utils_inc ../../bgslibrary/utils/*.h ../../bgslibrary/utils/*.hpp)
+file(GLOB_RECURSE bgs_src ../../bgslibrary/algorithms/*.cpp ../../bgslibrary/algorithms/*.c)
+file(GLOB_RECURSE bgs_inc ../../bgslibrary/algorithms/*.h ../../bgslibrary/algorithms/*.hpp)
 
 include_directories(${CMAKE_SOURCE_DIR} ${JNI_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS})
 
diff --git a/wrapper/java/bgslibrary_java_module.hpp b/wrapper/java/bgslibrary_java_module.hpp
index 1044f28cd2caa3bc95c1100a2cf6fbdec221ba20..f46068162e56af4067fed5667e72f1796940edc6 100644
--- a/wrapper/java/bgslibrary_java_module.hpp
+++ b/wrapper/java/bgslibrary_java_module.hpp
@@ -6,7 +6,7 @@
 #include <string>
 
 #include "src/bgslibrary_BgsLib.h"
-#include "../../src/algorithms/algorithms.h"
+#include "../../bgslibrary/algorithms/algorithms.h"
 
 bool constructObject(std::string algorithm);
 void computeForegroundMask(const cv::Mat &img_input, cv::Mat &img_output);
diff --git a/wrapper/matlab/compile.m b/wrapper/matlab/compile.m
index 527db494e0bf0fcd8c15eaf23a619f5023d98e15..15f9150b03ad8ceadd755088e6f30d4d26d383b3 100644
--- a/wrapper/matlab/compile.m
+++ b/wrapper/matlab/compile.m
@@ -1,95 +1,95 @@
 %% Compile
 clc;
-mexOpenCV -v -DMEX_COMPILE_FLAG -I"../../src/algorithms" backgroundSubtractor_wrapper.cpp ...
-  "../../src/algorithms/FrameDifference.cpp" ...
-  "../../src/algorithms/StaticFrameDifference.cpp" ...
-  "../../src/algorithms/WeightedMovingMean.cpp" ...
-  "../../src/algorithms/WeightedMovingVariance.cpp" ...
-  "../../src/algorithms/MixtureOfGaussianV1.cpp" ...
-  "../../src/algorithms/MixtureOfGaussianV2.cpp" ...
-  "../../src/algorithms/AdaptiveBackgroundLearning.cpp" ...
-  "../../src/algorithms/AdaptiveSelectiveBackgroundLearning.cpp" ...
-  "../../src/algorithms/GMG.cpp" ...
-  "../../src/algorithms/KNN.cpp" ...
-  "../../src/algorithms/DPAdaptiveMedian.cpp" ...
-  "../../src/algorithms/DPGrimsonGMM.cpp" ...
-  "../../src/algorithms/DPZivkovicAGMM.cpp" ...
-  "../../src/algorithms/DPMean.cpp" ...
-  "../../src/algorithms/DPWrenGA.cpp" ...
-  "../../src/algorithms/DPPratiMediod.cpp" ...
-  "../../src/algorithms/DPEigenbackground.cpp" ...
-  "../../src/algorithms/DPTexture.cpp" ...
-  "../../src/algorithms/dp/AdaptiveMedianBGS.cpp" ...
-  "../../src/algorithms/dp/Image.cpp" ...
-  "../../src/algorithms/dp/Error.cpp" ...
-  "../../src/algorithms/dp/GrimsonGMM.cpp" ...
-  "../../src/algorithms/dp/ZivkovicAGMM.cpp" ...
-  "../../src/algorithms/dp/MeanBGS.cpp" ...
-  "../../src/algorithms/dp/WrenGA.cpp"  ...
-  "../../src/algorithms/dp/PratiMediodBGS.cpp" ...
-  "../../src/algorithms/dp/Eigenbackground.cpp" ...
-  "../../src/algorithms/dp/TextureBGS.cpp" ...
-  "../../src/algorithms/T2FGMM_UM.cpp" ...
-  "../../src/algorithms/T2FGMM_UV.cpp" ...
-  "../../src/algorithms/T2FMRF_UM.cpp" ...
-  "../../src/algorithms/T2FMRF_UV.cpp" ...
-  "../../src/algorithms/FuzzyChoquetIntegral.cpp" ...
-  "../../src/algorithms/FuzzySugenoIntegral.cpp" ...
-  "../../src/algorithms/T2F/T2FGMM.cpp" ...
-  "../../src/algorithms/T2F/T2FMRF.cpp" ...
-  "../../src/algorithms/T2F/MRF.cpp" ...
-  "../../src/tools/FuzzyUtils.cpp" ...
-  "../../src/tools/PixelUtils.cpp" ...
-  "../../src/algorithms/MultiLayer.cpp" ...
-  "../../src/algorithms/MultiLayer/CMultiLayerBGS.cpp" ...
-  "../../src/algorithms/MultiLayer/LocalBinaryPattern.cpp" ...
-  "../../src/algorithms/MultiLayer/BlobResult.cpp" ...
-  "../../src/algorithms/MultiLayer/BlobExtraction.cpp" ...
-  "../../src/algorithms/MultiLayer/blob.cpp" ...
-  "../../src/algorithms/LBSimpleGaussian.cpp" ...
-  "../../src/algorithms/LBFuzzyGaussian.cpp" ...
-  "../../src/algorithms/LBMixtureOfGaussians.cpp" ...
-  "../../src/algorithms/LBAdaptiveSOM.cpp" ...
-  "../../src/algorithms/LBFuzzyAdaptiveSOM.cpp" ...
-  "../../src/algorithms/lb/BGModel.cpp" ...
-  "../../src/algorithms/lb/BGModelFuzzyGauss.cpp" ...
-  "../../src/algorithms/lb/BGModelFuzzySom.cpp" ...
-  "../../src/algorithms/lb/BGModelGauss.cpp" ...
-  "../../src/algorithms/lb/BGModelMog.cpp" ...
-  "../../src/algorithms/lb/BGModelSom.cpp" ...
-  "../../src/algorithms/LBP_MRF.cpp" ...
-  "../../src/algorithms/LBP_MRF/MotionDetection.cpp" ...
-  "../../src/algorithms/LBP_MRF/MEImage.cpp" ...
-  "../../src/algorithms/LBP_MRF/MEHistogram.cpp" ...
-  "../../src/algorithms/LBP_MRF/MEDefs.cpp" ...
-  "../../src/algorithms/LBP_MRF/maxflow.cpp" ...
-  "../../src/algorithms/LBP_MRF/graph.cpp" ...
-  "../../src/algorithms/PixelBasedAdaptiveSegmenter.cpp" ...
-  "../../src/algorithms/PBAS/PBAS.cpp" ...
-  "../../src/algorithms/VuMeter.cpp" ...
-  "../../src/algorithms/VuMeter/TBackgroundVuMeter.cpp" ...
-  "../../src/algorithms/VuMeter/TBackground.cpp" ...
-  "../../src/algorithms/KDE.cpp" ...
-  "../../src/algorithms/KDE/NPBGSubtractor.cpp" ...
-  "../../src/algorithms/KDE/NPBGmodel.cpp" ...
-  "../../src/algorithms/KDE/KernelTable.cpp" ...
-  "../../src/algorithms/IndependentMultimodal.cpp" ...
-  "../../src/algorithms/IMBS/IMBS.cpp" ...
-  "../../src/algorithms/MultiCue.cpp" ...
-  "../../src/algorithms/SigmaDelta.cpp" ...
-  "../../src/algorithms/SigmaDelta/sdLaMa091.cpp" ...
-  "../../src/algorithms/SuBSENSE.cpp" ...
-  "../../src/algorithms/LOBSTER.cpp" ...
-  "../../src/algorithms/PAWCS.cpp" ...
-  "../../src/algorithms/LBSP/LBSP.cpp" ...
-  "../../src/algorithms/LBSP/LBSP_.cpp" ...
-  "../../src/algorithms/LBSP/BackgroundSubtractorLBSP.cpp" ...
-  "../../src/algorithms/LBSP/BackgroundSubtractorLBSP_.cpp" ...
-  "../../src/algorithms/LBSP/BackgroundSubtractorLOBSTER.cpp" ...
-  "../../src/algorithms/LBSP/BackgroundSubtractorPAWCS.cpp" ...
-  "../../src/algorithms/LBSP/BackgroundSubtractorSuBSENSE.cpp" ...
-  "../../src/algorithms/ViBe.cpp" ...
-  "../../src/algorithms/ViBe/vibe-background-sequential.cpp" ...
-  "../../src/algorithms/TwoPoints.cpp" ...
-  "../../src/algorithms/TwoPoints/two_points.cpp" ...
-  "../../src/algorithms/CodeBook.cpp"
+mexOpenCV -v -DMEX_COMPILE_FLAG -I"../../bgslibrary/algorithms" backgroundSubtractor_wrapper.cpp ...
+  "../../bgslibrary/algorithms/FrameDifference.cpp" ...
+  "../../bgslibrary/algorithms/StaticFrameDifference.cpp" ...
+  "../../bgslibrary/algorithms/WeightedMovingMean.cpp" ...
+  "../../bgslibrary/algorithms/WeightedMovingVariance.cpp" ...
+  "../../bgslibrary/algorithms/MixtureOfGaussianV1.cpp" ...
+  "../../bgslibrary/algorithms/MixtureOfGaussianV2.cpp" ...
+  "../../bgslibrary/algorithms/AdaptiveBackgroundLearning.cpp" ...
+  "../../bgslibrary/algorithms/AdaptiveSelectiveBackgroundLearning.cpp" ...
+  "../../bgslibrary/algorithms/GMG.cpp" ...
+  "../../bgslibrary/algorithms/KNN.cpp" ...
+  "../../bgslibrary/algorithms/DPAdaptiveMedian.cpp" ...
+  "../../bgslibrary/algorithms/DPGrimsonGMM.cpp" ...
+  "../../bgslibrary/algorithms/DPZivkovicAGMM.cpp" ...
+  "../../bgslibrary/algorithms/DPMean.cpp" ...
+  "../../bgslibrary/algorithms/DPWrenGA.cpp" ...
+  "../../bgslibrary/algorithms/DPPratiMediod.cpp" ...
+  "../../bgslibrary/algorithms/DPEigenbackground.cpp" ...
+  "../../bgslibrary/algorithms/DPTexture.cpp" ...
+  "../../bgslibrary/algorithms/dp/AdaptiveMedianBGS.cpp" ...
+  "../../bgslibrary/algorithms/dp/Image.cpp" ...
+  "../../bgslibrary/algorithms/dp/Error.cpp" ...
+  "../../bgslibrary/algorithms/dp/GrimsonGMM.cpp" ...
+  "../../bgslibrary/algorithms/dp/ZivkovicAGMM.cpp" ...
+  "../../bgslibrary/algorithms/dp/MeanBGS.cpp" ...
+  "../../bgslibrary/algorithms/dp/WrenGA.cpp"  ...
+  "../../bgslibrary/algorithms/dp/PratiMediodBGS.cpp" ...
+  "../../bgslibrary/algorithms/dp/Eigenbackground.cpp" ...
+  "../../bgslibrary/algorithms/dp/TextureBGS.cpp" ...
+  "../../bgslibrary/algorithms/T2FGMM_UM.cpp" ...
+  "../../bgslibrary/algorithms/T2FGMM_UV.cpp" ...
+  "../../bgslibrary/algorithms/T2FMRF_UM.cpp" ...
+  "../../bgslibrary/algorithms/T2FMRF_UV.cpp" ...
+  "../../bgslibrary/algorithms/FuzzyChoquetIntegral.cpp" ...
+  "../../bgslibrary/algorithms/FuzzySugenoIntegral.cpp" ...
+  "../../bgslibrary/algorithms/T2F/T2FGMM.cpp" ...
+  "../../bgslibrary/algorithms/T2F/T2FMRF.cpp" ...
+  "../../bgslibrary/algorithms/T2F/MRF.cpp" ...
+  "../../bgslibrary/tools/FuzzyUtils.cpp" ...
+  "../../bgslibrary/tools/PixelUtils.cpp" ...
+  "../../bgslibrary/algorithms/MultiLayer.cpp" ...
+  "../../bgslibrary/algorithms/MultiLayer/CMultiLayerBGS.cpp" ...
+  "../../bgslibrary/algorithms/MultiLayer/LocalBinaryPattern.cpp" ...
+  "../../bgslibrary/algorithms/MultiLayer/BlobResult.cpp" ...
+  "../../bgslibrary/algorithms/MultiLayer/BlobExtraction.cpp" ...
+  "../../bgslibrary/algorithms/MultiLayer/blob.cpp" ...
+  "../../bgslibrary/algorithms/LBSimpleGaussian.cpp" ...
+  "../../bgslibrary/algorithms/LBFuzzyGaussian.cpp" ...
+  "../../bgslibrary/algorithms/LBMixtureOfGaussians.cpp" ...
+  "../../bgslibrary/algorithms/LBAdaptiveSOM.cpp" ...
+  "../../bgslibrary/algorithms/LBFuzzyAdaptiveSOM.cpp" ...
+  "../../bgslibrary/algorithms/lb/BGModel.cpp" ...
+  "../../bgslibrary/algorithms/lb/BGModelFuzzyGauss.cpp" ...
+  "../../bgslibrary/algorithms/lb/BGModelFuzzySom.cpp" ...
+  "../../bgslibrary/algorithms/lb/BGModelGauss.cpp" ...
+  "../../bgslibrary/algorithms/lb/BGModelMog.cpp" ...
+  "../../bgslibrary/algorithms/lb/BGModelSom.cpp" ...
+  "../../bgslibrary/algorithms/LBP_MRF.cpp" ...
+  "../../bgslibrary/algorithms/LBP_MRF/MotionDetection.cpp" ...
+  "../../bgslibrary/algorithms/LBP_MRF/MEImage.cpp" ...
+  "../../bgslibrary/algorithms/LBP_MRF/MEHistogram.cpp" ...
+  "../../bgslibrary/algorithms/LBP_MRF/MEDefs.cpp" ...
+  "../../bgslibrary/algorithms/LBP_MRF/maxflow.cpp" ...
+  "../../bgslibrary/algorithms/LBP_MRF/graph.cpp" ...
+  "../../bgslibrary/algorithms/PixelBasedAdaptiveSegmenter.cpp" ...
+  "../../bgslibrary/algorithms/PBAS/PBAS.cpp" ...
+  "../../bgslibrary/algorithms/VuMeter.cpp" ...
+  "../../bgslibrary/algorithms/VuMeter/TBackgroundVuMeter.cpp" ...
+  "../../bgslibrary/algorithms/VuMeter/TBackground.cpp" ...
+  "../../bgslibrary/algorithms/KDE.cpp" ...
+  "../../bgslibrary/algorithms/KDE/NPBGSubtractor.cpp" ...
+  "../../bgslibrary/algorithms/KDE/NPBGmodel.cpp" ...
+  "../../bgslibrary/algorithms/KDE/KernelTable.cpp" ...
+  "../../bgslibrary/algorithms/IndependentMultimodal.cpp" ...
+  "../../bgslibrary/algorithms/IMBS/IMBS.cpp" ...
+  "../../bgslibrary/algorithms/MultiCue.cpp" ...
+  "../../bgslibrary/algorithms/SigmaDelta.cpp" ...
+  "../../bgslibrary/algorithms/SigmaDelta/sdLaMa091.cpp" ...
+  "../../bgslibrary/algorithms/SuBSENSE.cpp" ...
+  "../../bgslibrary/algorithms/LOBSTER.cpp" ...
+  "../../bgslibrary/algorithms/PAWCS.cpp" ...
+  "../../bgslibrary/algorithms/LBSP/LBSP.cpp" ...
+  "../../bgslibrary/algorithms/LBSP/LBSP_.cpp" ...
+  "../../bgslibrary/algorithms/LBSP/BackgroundSubtractorLBSP.cpp" ...
+  "../../bgslibrary/algorithms/LBSP/BackgroundSubtractorLBSP_.cpp" ...
+  "../../bgslibrary/algorithms/LBSP/BackgroundSubtractorLOBSTER.cpp" ...
+  "../../bgslibrary/algorithms/LBSP/BackgroundSubtractorPAWCS.cpp" ...
+  "../../bgslibrary/algorithms/LBSP/BackgroundSubtractorSuBSENSE.cpp" ...
+  "../../bgslibrary/algorithms/ViBe.cpp" ...
+  "../../bgslibrary/algorithms/ViBe/vibe-background-sequential.cpp" ...
+  "../../bgslibrary/algorithms/TwoPoints.cpp" ...
+  "../../bgslibrary/algorithms/TwoPoints/two_points.cpp" ...
+  "../../bgslibrary/algorithms/CodeBook.cpp"
diff --git a/wrapper/python/bgslibrary_module.cpp b/wrapper/python/bgslibrary_module.cpp
index 36f5609fdda683b715288655e6b388e215a54ec9..2ba553658ef8d705e6d484bfdc2fdbdb3062ecc4 100644
--- a/wrapper/python/bgslibrary_module.cpp
+++ b/wrapper/python/bgslibrary_module.cpp
@@ -4,7 +4,7 @@
 #include <opencv2/opencv.hpp>
 
 #include "ndarray_converter.h"
-#include "../../src/algorithms/algorithms.h"
+#include "../../bgslibrary/algorithms/algorithms.h"
 
 #if CV_MAJOR_VERSION >= 4
 #define CV_LOAD_IMAGE_COLOR cv::IMREAD_COLOR