diff --git a/.gitignore b/.gitignore
index 7f474dc84a1530f97e7e33f550d1c0f2f3b3be82..afb143025733ce5f91c5d0d3abf7d880038eef43 100644
--- a/.gitignore
+++ b/.gitignore
@@ -184,4 +184,6 @@ cython_debug/
 
 .vscode/
 
-!docs/Makefile
\ No newline at end of file
+!docs/Makefile
+
+.venv**
\ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 36cf9388242435566a7fbe2659f3ed00327c5abf..e16ab87ddb55c27c27ec00c830e9cfaac10c3baa 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,13 +6,13 @@ find_package(OpenCV REQUIRED)
 include_directories(${OpenCV_INCLUDE_DIRS})
 include_directories(/usr/include/x86_64-linux-gnu/python3.6m)
 include_directories(/usr/include/python3.6m)
-include_directories(/src/ar_sandbox_lib/inc)
+include_directories(/home/frog/Prog/Projects/Sandbox/lib/ar_sandbox_lib/inc)
 
 
 include_directories(/usr/local/lib/python3.6/dist-packages/pybind11/share/cmake/pybind11)
 find_package(pybind11 REQUIRED)
 pybind11_add_module(sandbox_wrapper ./cpp/sandbox_wrapper.cpp)
 
-include_directories(/src/ar_sandbox_lib/build/)
+include_directories(/home/frog/Prog/Projects/Sandbox/lib/ar_sandbox_lib/build/)
 target_link_libraries(sandbox_wrapper PRIVATE ${OpenCV_LIBS})
-target_link_libraries(sandbox_wrapper PRIVATE /src/ar_sandbox_lib/build/libsandbox.so.1.0.0 -lrealsense2 -lyaml-cpp)
+target_link_libraries(sandbox_wrapper PRIVATE /home/frog/Prog/Projects/Sandbox/lib/ar_sandbox_lib/build/libsandbox.so.1.0.0 -lrealsense2 -lyaml-cpp)
diff --git a/Makefile b/Makefile
index f4e6d8018e368aabbbd9798ffefdd7125e39dca2..60bcce701a80bf9ea01fa35c66a44fe6bc37f5cb 100644
--- a/Makefile
+++ b/Makefile
@@ -1,24 +1,197 @@
-PYBIND_CMAKE=`pip show pybind11 | grep Location: | cut -d" " -f2`/pybind11/share/cmake/pybind11
+# CMAKE generated file: DO NOT EDIT!
+# Generated by "Unix Makefiles" Generator, CMake Version 3.18
 
-default: build
+# Default target executed when no arguments are given to make.
+default_target: all
 
-build: sandbox_wrapper.so
-	python3 -m build
+.PHONY : default_target
 
-sandbox_wrapper.so: sandbox_wrapper.cpp
-	cd build && make && cp -f *.so ../src/ar_sandbox/wrapper/
+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
+.NOTPARALLEL:
 
-sandbox_wrapper.cpp:
-	cd build && cmake .. -DPYTHON_EXECUTABLE=/usr/bin/python3 -Dpybind11_DIR=${PYBIND_CMAKE}
 
-clean: clean-cpp clean-pydist clean-pysrc
+#=============================================================================
+# Special targets provided by cmake.
 
-clean-pysrc:
-	rm -rf ./src/*.egg-info ./src/ar_sandbox/*.so
+# Disable implicit rules so canonical targets will work.
+.SUFFIXES:
 
-clean-pydist:
-	rm -f ./dist/*
 
-clean-cpp:
-	cd build && make clean
-	rm -rf ./build/*
\ No newline at end of file
+# Disable VCS-based implicit rules.
+% : %,v
+
+
+# Disable VCS-based implicit rules.
+% : RCS/%
+
+
+# Disable VCS-based implicit rules.
+% : RCS/%,v
+
+
+# Disable VCS-based implicit rules.
+% : SCCS/s.%
+
+
+# Disable VCS-based implicit rules.
+% : s.%
+
+
+.SUFFIXES: .hpux_make_needs_suffix_list
+
+
+# Command-line flag to silence nested $(MAKE).
+$(VERBOSE)MAKESILENT = -s
+
+#Suppress display of executed commands.
+$(VERBOSE).SILENT:
+
+# A target that is always out of date.
+cmake_force:
+
+.PHONY : cmake_force
+
+#=============================================================================
+# Set environment variables for the build.
+
+# The shell in which to execute make rules.
+SHELL = /bin/sh
+
+# The CMake executable.
+CMAKE_COMMAND = /usr/bin/cmake
+
+# The command to remove a file.
+RM = /usr/bin/cmake -E rm -f
+
+# Escaping for special characters.
+EQUALS = =
+
+# The top-level source directory on which CMake was run.
+CMAKE_SOURCE_DIR = /home/frog/Prog/Projects/Sandbox/lib/ar_sandbox_python
+
+# The top-level build directory on which CMake was run.
+CMAKE_BINARY_DIR = /home/frog/Prog/Projects/Sandbox/lib/ar_sandbox_python
+
+#=============================================================================
+# Targets provided globally by CMake.
+
+# Special rule for the target rebuild_cache
+rebuild_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
+	/usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
+.PHONY : rebuild_cache
+
+# Special rule for the target rebuild_cache
+rebuild_cache/fast: rebuild_cache
+
+.PHONY : rebuild_cache/fast
+
+# Special rule for the target edit_cache
+edit_cache:
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..."
+	/usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available.
+.PHONY : edit_cache
+
+# Special rule for the target edit_cache
+edit_cache/fast: edit_cache
+
+.PHONY : edit_cache/fast
+
+# The main all target
+all: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/frog/Prog/Projects/Sandbox/lib/ar_sandbox_python/CMakeFiles /home/frog/Prog/Projects/Sandbox/lib/ar_sandbox_python//CMakeFiles/progress.marks
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all
+	$(CMAKE_COMMAND) -E cmake_progress_start /home/frog/Prog/Projects/Sandbox/lib/ar_sandbox_python/CMakeFiles 0
+.PHONY : all
+
+# The main clean target
+clean:
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean
+.PHONY : clean
+
+# The main clean target
+clean/fast: clean
+
+.PHONY : clean/fast
+
+# Prepare targets for installation.
+preinstall: all
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall
+.PHONY : preinstall
+
+# Prepare targets for installation.
+preinstall/fast:
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall
+.PHONY : preinstall/fast
+
+# clear depends
+depend:
+	$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
+.PHONY : depend
+
+#=============================================================================
+# Target rules for targets named sandbox_wrapper
+
+# Build rule for target.
+sandbox_wrapper: cmake_check_build_system
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 sandbox_wrapper
+.PHONY : sandbox_wrapper
+
+# fast build rule for target.
+sandbox_wrapper/fast:
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/sandbox_wrapper.dir/build.make CMakeFiles/sandbox_wrapper.dir/build
+.PHONY : sandbox_wrapper/fast
+
+cpp/sandbox_wrapper.o: cpp/sandbox_wrapper.cpp.o
+
+.PHONY : cpp/sandbox_wrapper.o
+
+# target to build an object file
+cpp/sandbox_wrapper.cpp.o:
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/sandbox_wrapper.dir/build.make CMakeFiles/sandbox_wrapper.dir/cpp/sandbox_wrapper.cpp.o
+.PHONY : cpp/sandbox_wrapper.cpp.o
+
+cpp/sandbox_wrapper.i: cpp/sandbox_wrapper.cpp.i
+
+.PHONY : cpp/sandbox_wrapper.i
+
+# target to preprocess a source file
+cpp/sandbox_wrapper.cpp.i:
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/sandbox_wrapper.dir/build.make CMakeFiles/sandbox_wrapper.dir/cpp/sandbox_wrapper.cpp.i
+.PHONY : cpp/sandbox_wrapper.cpp.i
+
+cpp/sandbox_wrapper.s: cpp/sandbox_wrapper.cpp.s
+
+.PHONY : cpp/sandbox_wrapper.s
+
+# target to generate assembly for a file
+cpp/sandbox_wrapper.cpp.s:
+	$(MAKE) $(MAKESILENT) -f CMakeFiles/sandbox_wrapper.dir/build.make CMakeFiles/sandbox_wrapper.dir/cpp/sandbox_wrapper.cpp.s
+.PHONY : cpp/sandbox_wrapper.cpp.s
+
+# Help Target
+help:
+	@echo "The following are some of the valid targets for this Makefile:"
+	@echo "... all (the default if no target is provided)"
+	@echo "... clean"
+	@echo "... depend"
+	@echo "... edit_cache"
+	@echo "... rebuild_cache"
+	@echo "... sandbox_wrapper"
+	@echo "... cpp/sandbox_wrapper.o"
+	@echo "... cpp/sandbox_wrapper.i"
+	@echo "... cpp/sandbox_wrapper.s"
+.PHONY : help
+
+
+
+#=============================================================================
+# Special targets to cleanup operation of make.
+
+# Special rule to run CMake to check the build system integrity.
+# No rule that depends on this can have commands that come from listfiles
+# because they might be regenerated.
+cmake_check_build_system:
+	$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
+.PHONY : cmake_check_build_system
+