diff --git a/CMakeLists.txt b/CMakeLists.txt
index 16702d6e2e8c7278810bdd608c0b85701f12a07b..02f858e776d39d0e40224ee1bf4e0537e1d66994 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -20,9 +20,9 @@ add_subdirectory(GraspPlanning)
 ############################################
 MESSAGE(STATUS "Simox: Generating CMake files")
 
-set(SIMOX_MAJOR_VERSION 0)
+set(SIMOX_MAJOR_VERSION 2)
 set(SIMOX_MINOR_VERSION 1)
-set(SIMOX_PATCH_VERSION 0)
+set(SIMOX_PATCH_VERSION 2)
 set(SIMOX_VERSION
     ${SIMOX_MAJOR_VERSION}.${SIMOX_MINOR_VERSION}.${SIMOX_PATCH_VERSION})
 
@@ -60,15 +60,16 @@ SET(VIRTUAL_ROBOT_CMAKE_DIR "${SIMOX_BUILD_DIRECTORY}/share/VirtualRobot/cmake")
 SET(SIMOX_LIBRARY_CMAKE_INCLUDE "${VIRTUAL_ROBOT_CMAKE_INCLUDE}")
 SET(SIMOX_DATA_PATH "${VIRTUAL_ROBOT_DATA_PATH}")
 
-
+# the SimoxConfig.cmake will be used by external porjects to setup Simox via the FindPackage method.
+# So it must be located in the Simox_DIR directory (build-tree -> SIMOX_BUILD_DIRECTORY)
 configure_file(
     ${PROJECT_SOURCE_DIR}/CMakeModules/SimoxConfig.cmake.in
-    "${SIMOX_CMAKE_DIR}/SimoxConfig.cmake"
+    "${SIMOX_BUILD_DIRECTORY}/SimoxConfig.cmake"
     @ONLY)
 
 configure_file(
     ${PROJECT_SOURCE_DIR}/CMakeModules/SimoxConfigVersion.cmake.in
-    "${SIMOX_CMAKE_DIR}/SimoxConfigVersion.cmake"
+    "${SIMOX_BUILD_DIRECTORY}/SimoxConfigVersion.cmake"
     @ONLY)
 
 configure_file("${PROJECT_SOURCE_DIR}/CMakeModules/SimoxExternalLibrarySetup.cmake"
@@ -97,9 +98,16 @@ configure_file(
     ${PROJECT_SOURCE_DIR}/CMakeModules/SimoxConfigVersion.cmake.in
     "${SIMOX_BUILD_DIRECTORY}/InstallFiles/SimoxConfigVersion.cmake"
     @ONLY)
+# The SimoxConfig.cmake will be used by external porjects to setup Simox via the FindPackage method.
+# So it must be located in the Simox_DIR directory (install-tree -> CMAKE_INSTALL_PREFIX)
 install(FILES
     "${SIMOX_BUILD_DIRECTORY}/InstallFiles/SimoxConfig.cmake"
     "${SIMOX_BUILD_DIRECTORY}/InstallFiles/SimoxConfigVersion.cmake"
+    DESTINATION "${CMAKE_INSTALL_PREFIX}")
+install(FILES
+    "${PROJECT_SOURCE_DIR}/CMakeModules/SimoxExternalLibrarySetup.cmake"
+    "${PROJECT_SOURCE_DIR}/CMakeModules/SimoxMacros.cmake"
+    "${PROJECT_SOURCE_DIR}/CMakeModules/FindSimox.cmake"
     DESTINATION "${SIMOX_CMAKE_DIR}")
 install(FILES
     "${PROJECT_SOURCE_DIR}/CMakeModules/SimoxExternalLibrarySetup.cmake"
@@ -107,6 +115,7 @@ install(FILES
     "${PROJECT_SOURCE_DIR}/CMakeModules/FindSimox.cmake"
     DESTINATION "${SIMOX_CMAKE_DIR}")
 
+
 #
 #INSTALL(TARGETS Simox 
 #        EXPORT SimoxLibraryDepends
diff --git a/CMakeModules/FindSimox.cmake b/CMakeModules/FindSimox.cmake
index e99a63aa3e58fbe49794351b1b30c5bc89bb5076..ffee9e8314fc9d2e7954d4a6c7f79f990a6c07c1 100644
--- a/CMakeModules/FindSimox.cmake
+++ b/CMakeModules/FindSimox.cmake
@@ -18,7 +18,6 @@
 #
 ## PROJECT ( myDemo )
 ## SET(Simox_DIR $ENV{Simox_DIR} CACHE STRING "Choose the path to Simox (install or build).")
-## SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${Simox_DIR}/share/Simox/cmake)
 ## FIND_PACKAGE(Simox REQUIRED)
 ## IF(SIMOX_USE_COIN_VISUALIZATION)
 ##   FILE(GLOB SRCS ${PROJECT_SOURCE_DIR}/myDemo.cpp ${PROJECT_SOURCE_DIR}/myWindow.cpp)
@@ -29,11 +28,16 @@
 ## ENDIF()
 
  
+MESSAGE ("START1")
+
 #### CMAKE CONFIG
 find_file( Simox_CMAKE_CONFIG SimoxConfig.cmake 
                     "${Custom_Simox_DIR}/share/Simox/cmake" 
                     "${Simox_DIR}/share/Simox/cmake" 
-                    "$ENV{Simox_DIR}/share/Simox/cmake")
+                    "$ENV{Simox_DIR}/share/Simox/cmake"
+                    "${Custom_Simox_DIR}"
+                    "${Simox_DIR}" 
+                    "$ENV{Simox_DIR}")
 
 MESSAGE(STATUS " * Including ${Simox_CMAKE_CONFIG}")
 include (${Simox_CMAKE_CONFIG})
@@ -42,13 +46,6 @@ if( SIMOX_LIBRARIES AND SIMOX_BASE_DIR)
     set( SIMOX_FOUND TRUE )
     set( SIMOX_INCLUDE_DIR ${SIMOX_BASE_DIR} )
     set( SIMOX_LIBRARY ${SIMOX_LIBRARIES} )
-    
-	# include all library dependencies
-	MESSAGE(STATUS " * Including ${SIMOX_CMAKE_DIR}/SimoxExternalLibrarySetup.cmake")
-	include(${SIMOX_CMAKE_DIR}/SimoxExternalLibrarySetup.cmake)
-	MESSAGE(STATUS " * Including ${SIMOX_CMAKE_DIR}/SimoxMacros.cmake")
-	include(${SIMOX_CMAKE_DIR}/SimoxMacros.cmake)
-
 endif()
 
 include( FindPackageHandleStandardArgs )
diff --git a/CMakeModules/SimoxConfig.cmake.in b/CMakeModules/SimoxConfig.cmake.in
index cf4f911b496442082ef8e7c5b86cb14d79155b18..17e1450fbe40123f0097735ea82871a91a546f6c 100644
--- a/CMakeModules/SimoxConfig.cmake.in
+++ b/CMakeModules/SimoxConfig.cmake.in
@@ -32,3 +32,13 @@ SET(SIMOX_VISUALIZATION_LIBS "@SIMOX_VISUALIZATION_LIBS@")
 SET(SIMOX_VISUALIZATION_INCLUDE_PATHS "@SIMOX_VISUALIZATION_INCLUDE_PATHS@")
 SET(SIMOX_VISUALIZATION_COMPILE_FLAGS "@SIMOX_VISUALIZATION_COMPILE_FLAGS@")
 
+# Convenient setup: all simox-related dependencies are included here.
+# If this causes troubles, disable it by steting SIMOX_DISABLE_DEPENDENCIES_INCLUDE. 
+# Then you will need to setup the dependencies on your own, similar to the setup in SimoxExternalLibrarySetup.cmake
+IF(NOT SIMOX_DISABLE_DEPENDENCIES_INCLUDE)
+    # include all library dependencies
+    MESSAGE(STATUS " * Including ${SIMOX_CMAKE_DIR}/SimoxExternalLibrarySetup.cmake")
+    include(${SIMOX_CMAKE_DIR}/SimoxExternalLibrarySetup.cmake)
+    MESSAGE(STATUS " * Including ${SIMOX_CMAKE_DIR}/SimoxMacros.cmake")
+    include(${SIMOX_CMAKE_DIR}/SimoxMacros.cmake)
+ENDIF()
diff --git a/VirtualRobot/CMakeLists.txt b/VirtualRobot/CMakeLists.txt
index 94512df91a29d20800f6861f51fbc194a36e2dff..b966474fdb8cb08ef3a314043ff389acf8c77f6a 100644
--- a/VirtualRobot/CMakeLists.txt
+++ b/VirtualRobot/CMakeLists.txt
@@ -240,9 +240,9 @@ SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${VIRT
 ############################################
 MESSAGE(STATUS " * Generating CMake files")
 
-set(VIRTUAL_ROBOT_MAJOR_VERSION 0)
+set(VIRTUAL_ROBOT_MAJOR_VERSION 2)
 set(VIRTUAL_ROBOT_MINOR_VERSION 1)
-set(VIRTUAL_ROBOT_PATCH_VERSION 0)
+set(VIRTUAL_ROBOT_PATCH_VERSION 2)
 set(VIRTUAL_ROBOT_VERSION
     ${VIRTUAL_ROBOT_MAJOR_VERSION}.${VIRTUAL_ROBOT_MINOR_VERSION}.${VIRTUAL_ROBOT_PATCH_VERSION})
 
@@ -258,13 +258,13 @@ EXPORT(PACKAGE VirtualRobot)
 #message(STATUS "VirtualRobot_external_INCLUDE_DIRS: ${VirtualRobot_external_INCLUDE_DIRS}")
 
 SET (VIRTUAL_ROBOT_CONFIG_INBUILD_DIR ${VIRTUAL_ROBOT_BUILD_DIRECTORY}/share/VirtualRobot/cmake)
-SET (VIRTUAL_ROBOT_CONFIG_INBUILD "${VIRTUAL_ROBOT_CONFIG_INBUILD_DIR}/VirtualRobotConfig.cmake")
+SET (VIRTUAL_ROBOT_CONFIG_INBUILD "${VIRTUAL_ROBOT_BUILD_DIRECTORY}/VirtualRobotConfig.cmake")
 SET (VIRTUAL_ROBOT_CONFIG_INSTALL_LCOAL_DIR ${VIRTUAL_ROBOT_BUILD_DIRECTORY}/InstallFiles)
 SET (VIRTUAL_ROBOT_CONFIG_INSTALL_LOCAL "${VIRTUAL_ROBOT_CONFIG_INSTALL_LCOAL_DIR}/VirtualRobotConfig.cmake")
 SET (VIRTUAL_ROBOT_CONFIG_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/share/VirtualRobot/cmake)
-SET (VIRTUAL_ROBOT_CONFIG_INSTALL "${VIRTUAL_ROBOT_CONFIG_INSTALL_DIR}/VirtualRobotConfig.cmake")
+SET (VIRTUAL_ROBOT_CONFIG_INSTALL "${CMAKE_INSTALL_PREFIX}/VirtualRobotConfig.cmake")
 
-MESSAGE (STATUS " * VirtualRobot: SETTING UP INSATLL FILES")
+MESSAGE (STATUS " * VirtualRobot: SETTING UP INSTALL FILES")
 MESSAGE (STATUS " ** In-build tree: VIRTUAL_ROBOT_CONFIG_INBUILD = ${VIRTUAL_ROBOT_CONFIG_INBUILD}")
 MESSAGE (STATUS " ** Install tree : (local)   VIRTUAL_ROBOT_CONFIG_INSTALL_LOCAL = ${VIRTUAL_ROBOT_CONFIG_INSTALL_LOCAL}")
 MESSAGE (STATUS " ** Install tree : (install) VIRTUAL_ROBOT_CONFIG_INSTALL = ${VIRTUAL_ROBOT_CONFIG_INSTALL}")
@@ -286,11 +286,11 @@ SET(VIRTUAL_ROBOT_LIBRARY_CMAKE_INCLUDE "${VIRTUAL_ROBOT_EXTERNAL_LIBRARY_CMAKE_
 SET(VIRTUAL_ROBOT_DATA_PATH "${PROJECT_SOURCE_DIR}/data")
 configure_file(
     ${VR_DIR}/CMakeModules/VirtualRobotConfig.cmake.in
-    "${VIRTUAL_ROBOT_CONFIG_INBUILD_DIR}/VirtualRobotConfig.cmake"
+    "${VIRTUAL_ROBOT_BUILD_DIRECTORY}/VirtualRobotConfig.cmake"
     @ONLY)
 configure_file(
     ${VR_DIR}/CMakeModules/VirtualRobotConfigVersion.cmake.in
-    "${VIRTUAL_ROBOT_CONFIG_INBUILD_DIR}/VirtualRobotConfigVersion.cmake"
+    "${VIRTUAL_ROBOT_BUILD_DIRECTORY}/VirtualRobotConfigVersion.cmake"
     @ONLY)
 configure_file("${PROJECT_SOURCE_DIR}/CMakeModules/VirtualRobotExternalLibrarySetup.cmake"
     "${VIRTUAL_ROBOT_CONFIG_INBUILD_DIR}/VirtualRobotExternalLibrarySetup.cmake" COPYONLY)
@@ -323,7 +323,7 @@ configure_file(
 install(FILES
     "${VIRTUAL_ROBOT_CONFIG_INSTALL_LCOAL_DIR}/VirtualRobotConfig.cmake"
     "${VIRTUAL_ROBOT_CONFIG_INSTALL_LCOAL_DIR}/VirtualRobotConfigVersion.cmake"
-    DESTINATION "${VIRTUAL_ROBOT_CMAKE_DIR}")
+    DESTINATION "${CMAKE_INSTALL_PREFIX}")
 install(FILES
     "${PROJECT_SOURCE_DIR}/CMakeModules/VirtualRobotExternalLibrarySetup.cmake"
     "${PROJECT_SOURCE_DIR}/CMakeModules/VirtualRobotMacros.cmake"
diff --git a/VirtualRobot/CMakeModules/FindVirtualRobot.cmake b/VirtualRobot/CMakeModules/FindVirtualRobot.cmake
index 5439c577252ee674543b17011da6d23f2958cc22..0c73055689c616c982e64680079d7d408fb1f002 100644
--- a/VirtualRobot/CMakeModules/FindVirtualRobot.cmake
+++ b/VirtualRobot/CMakeModules/FindVirtualRobot.cmake
@@ -45,13 +45,6 @@ if( VIRTUAL_ROBOT_LIBRARIES AND VIRTUAL_ROBOT_DIR)
     set( VIRTUAL_ROBOT_FOUND TRUE )
     set( VIRTUAL_ROBOT_INCLUDE_DIR ${VIRTUAL_ROBOT_DIR} )
     set( VIRTUAL_ROBOT_LIBRARY ${VIRTUAL_ROBOT_LIBRARIES} )
-    
-	# include all library dependencies
-	MESSAGE (STATUS " * Including ${VIRTUAL_ROBOT_CMAKE_DIR}/VirtualRobotExternalLibrarySetup.cmake")
-	include(${VIRTUAL_ROBOT_CMAKE_DIR}/VirtualRobotExternalLibrarySetup.cmake)
-	
-	MESSAGE (STATUS " * Including ${VIRTUAL_ROBOT_CMAKE_DIR}/VirtualRobotMacros.cmake")
-	include(${VIRTUAL_ROBOT_CMAKE_DIR}/VirtualRobotMacros.cmake)
 endif()
 
 include( FindPackageHandleStandardArgs )
diff --git a/VirtualRobot/CMakeModules/VirtualRobotConfig.cmake.in b/VirtualRobot/CMakeModules/VirtualRobotConfig.cmake.in
index a41de0438455b9b93e2330a452a2e5e544bf2b8a..61de76678d83825855ff1253a823f011f32d2b59 100644
--- a/VirtualRobot/CMakeModules/VirtualRobotConfig.cmake.in
+++ b/VirtualRobot/CMakeModules/VirtualRobotConfig.cmake.in
@@ -39,3 +39,14 @@ SET(VIRTUAL_ROBOT_VISUALIZATION_LIBS "@VIRTUAL_ROBOT_VISUALIZATION_LIBS@")
 SET(VIRTUAL_ROBOT_VISUALIZATION_INCLUDE_PATHS "@VIRTUAL_ROBOT_VISUALIZATION_INCLUDE_PATHS@")
 SET(VIRTUAL_ROBOT_VISUALIZATION_COMPILE_FLAGS "@VIRTUAL_ROBOT_VISUALIZATION_COMPILE_FLAGS@")
 
+# Convenient setup: all VirtualRobot-related dependencies are included here.
+# If this causes troubles, disable it by steting VIRTUAL_ROBOT_DISABLE_DEPENDENCIES_INCLUDE. 
+# Then you will need to setup the dependencies on your own, similar to the setup in VirtualRobotExternalLibrarySetup.cmake
+IF(NOT VIRTUAL_ROBOT_DISABLE_DEPENDENCIES_INCLUDE)
+	# include all library dependencies
+	MESSAGE (STATUS " * Including ${VIRTUAL_ROBOT_CMAKE_DIR}/VirtualRobotExternalLibrarySetup.cmake")
+	include(${VIRTUAL_ROBOT_CMAKE_DIR}/VirtualRobotExternalLibrarySetup.cmake)
+	
+	MESSAGE (STATUS " * Including ${VIRTUAL_ROBOT_CMAKE_DIR}/VirtualRobotMacros.cmake")
+	include(${VIRTUAL_ROBOT_CMAKE_DIR}/VirtualRobotMacros.cmake)
+ENDIF()
diff --git a/doc/external_project_setup.txt b/doc/external_project_setup.txt
index 83a1fea7a92d710e5ba42a5ebf8983e3d5c38d92..42baaa73256f70bdd31693bc2d066355e13bd0a8 100644
--- a/doc/external_project_setup.txt
+++ b/doc/external_project_setup.txt
@@ -1,4 +1,5 @@
-When you intend to use Simox with an external project, you can use the following CMakeLists.txt code:
+When you intend to use Simox with an external project, you can use the following CMakeLists.txt code.
+Set the environment variable Simox_DIR to the (build or install) location of Simox. It will be considered by the FIND_PACKAGE method.
 
 <---- snippet ----->
 
@@ -8,12 +9,6 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0)
 CMAKE_POLICY(VERSION 2.6)
 
 ############################# SETUP PATHS TO Simox #############################
-
-# the environment variable Simox_DIR is initially used as path to simox.
-SET(Simox_DIR $ENV{Simox_DIR} CACHE STRING "Choose the path to Simox (install or build).")
-SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${Simox_DIR}/share/Simox/cmake)
-
-# now search simox (The file ${Simox_DIR}/share/Simox/cmake/FindSimox.cmake is used)
 FIND_PACKAGE(Simox REQUIRED)
 
 # Build only if Simox was created with Coin3D support.