diff --git a/HippTest/CMakeLists.txt b/HippTest/CMakeLists.txt
index 093ec17..4ffc577 100644
--- a/HippTest/CMakeLists.txt
+++ b/HippTest/CMakeLists.txt
@@ -21,10 +21,10 @@
 include (DetectToolChain)
 
 # Searching for configuration management tools 
-#include (LookForSCM)
+include (LookForSCM)
 
 # Sources revision
-#include (DetectRevision)
+include (DetectRevision)
 
 # Generic options that should propagate to all subtargets
 # (hence they must be loaded before the project structure is defined)
@@ -35,7 +35,7 @@
 include (SelectSpecificOptions)
 
 # Searching for mandatory prerequisites
-#include (LookForMandatoryPrereq) 
+include (LookForMandatoryPrereq) 
 
 
 
diff --git a/HippTest/cmake/LookForMandatoryPrereq.cmake b/HippTest/cmake/LookForMandatoryPrereq.cmake
index 974caa6..04862c5 100644
--- a/HippTest/cmake/LookForMandatoryPrereq.cmake
+++ b/HippTest/cmake/LookForMandatoryPrereq.cmake
@@ -15,29 +15,29 @@
 #
 # Variable BOOST_ROOT is used as a search hint by find_package
 #
-message (STATUS "**** Looking for BOOST ****")
+#message (STATUS "**** Looking for BOOST ****")
 # BOOST_COMPONENTS should contains the required boost components  
-set (Boost_USE_STATIC_LIBS ON) # Force to lookg for static libraries
-find_package (Boost 1.40 REQUIRED COMPONENTS ${BOOST_COMPONENTS})
-if (NOT (Boost_FOUND)) 
-    message (FATAL_ERROR "Boost not found : please install Boost >= 1.53 manually")
-else ()
-    message (STATUS "Boost : " ${Boost_LIBRARIES} "-" ${Boost_INCLUDE_DIRS} "-" ${Boost_LIBRARY_DIRS})
-endif()
-message (STATUS "****                   ****")
+#set (Boost_USE_STATIC_LIBS ON) # Force to lookg for static libraries
+#find_package (Boost 1.40 REQUIRED COMPONENTS ${BOOST_COMPONENTS})
+#if (NOT (Boost_FOUND)) 
+#    message (FATAL_ERROR "Boost not found : please install Boost >= 1.53 manually")
+#else ()
+#    message (STATUS "Boost : " ${Boost_LIBRARIES} "-" ${Boost_INCLUDE_DIRS} "-" ${Boost_LIBRARY_DIRS})
+#endif()
+#message (STATUS "****                   ****")
 
 # --------------------------- Looking for GPM ---------------------------------
 # 
 # The GMP_ROOT variable is used as a search hint
 # 
-message (STATUS "****  Looking for GMP  ****")
-find_package(GMP 6.1.0 REQUIRED)
-if (NOT (GMP_FOUND))
-    message (FATAL_ERROR "GMP not found : please install GMP  >= 6.1.0 manually")
-else ()
-    message (STATUS "GMP : " ${lib_gmp_c} "-" ${lib_gmp_cxx} "-" ${gmp_includedir} "-" ${gmpxx_includedir})
-endif()
-message (STATUS "****                   ****")
+#message (STATUS "****  Looking for GMP  ****")
+#find_package(GMP 4.1.0 REQUIRED)
+#if (NOT (GMP_FOUND))
+#    message (FATAL_ERROR "GMP not found : please install GMP  >= 6.1.0 manually")
+#else ()
+#    message (STATUS "GMP : " ${lib_gmp_c} "-" ${lib_gmp_cxx} "-" ${gmp_includedir} "-" ${gmpxx_includedir})
+#endif()
+#message (STATUS "****                   ****")
 
 # --------------------------- Looking for CVC4 --------------------------------
 #
diff --git a/HippTest/cmake_hipp.sh b/HippTest/cmake_hipp.sh
index 863244b..13e157e 100644
--- a/HippTest/cmake_hipp.sh
+++ b/HippTest/cmake_hipp.sh
@@ -1,8 +1,12 @@
 echo cmake -G \"Unix Makefiles\" ./build
 
+rm -rfd build
+
 mkdir build ; cd build
 
 cmake -G "Unix Makefiles" ../
 
-make -j28
+make
+
+#ctest -W -s 
 
diff --git a/HippTest/src/CMakeLists.txt b/HippTest/src/CMakeLists.txt
index dbd432b..13e53ce 100644
--- a/HippTest/src/CMakeLists.txt
+++ b/HippTest/src/CMakeLists.txt
@@ -8,3 +8,15 @@
 
 # Minimum required CMake version
 cmake_minimum_required (VERSION 2.8 FATAL_ERROR)
+
+# Tell cmake where to find its own modules
+list (APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) # Common modules
+list (APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/src/cmake)    # Specific modules
+
+set (BANNER_MESSAGE "This is HiPP Test Build System")
+include (PrintBanner)
+
+
+# Project definition (directories hierarchy, main target sources, link)
+include (DefineSymbexProject)
+
diff --git a/HippTest/src/cmake/DefineSymbexProject.cmake b/HippTest/src/cmake/DefineSymbexProject.cmake
index c86fb2d..5018f77 100644
--- a/HippTest/src/cmake/DefineSymbexProject.cmake
+++ b/HippTest/src/cmake/DefineSymbexProject.cmake
@@ -12,32 +12,19 @@
 # internal library (i.e. containing a CMakeLists.txt defining a target)
 # Sources within subdirectories are taken into account by the recursive
 # look-up (see the specific CMakeLists.txt)
-add_subdirectory (base)
-add_subdirectory (builder)
-add_subdirectory (collection)
-add_subdirectory (common)
-add_subdirectory (computer)
-add_subdirectory (compat)
-add_subdirectory (fam)
-add_subdirectory (fml)
-add_subdirectory (parser)
-add_subdirectory (printer)
-add_subdirectory (sew)
-add_subdirectory (solver)
-add_subdirectory (util)
-
 
 
 # Main target C++ source files  (all files matching patterns)
 file (GLOB_RECURSE MAIN_CXX_SRC_FILES main/*.cpp main/*.h)
 
 # Main target definition (association to its sources)
-add_executable (symbex ${MAIN_CXX_SRC_FILES})
+add_executable (HippTest ${MAIN_CXX_SRC_FILES})
 
 # Adhoc dependencies to force builds from sources (if a prerequisite is not found)
-add_dependencies(symbex rescan_cvc4)
-add_dependencies(symbex rescan_antlr2)
+add_dependencies(HippTest rescan_cvc4)
+add_dependencies(HippTest rescan_antlr2)
 
 # Main target link - FIXME : duplicate fml and fam needed to link sucessfully
-target_link_libraries (symbex sew parser fam fml fam builder solver computer fml common base collec compat printer util ${ANTLR2_LIBRARIES} ${ANTLR3_LIBRARIES} ${Boost_LIBRARIES} ${CVC4_LIBRARIES} ${lib_gmp_c} ${lib_gmp_cxx})
+#target_link_libraries (HippTest)
+target_link_libraries (HippTest  ${ANTLR2_LIBRARIES} ${ANTLR3_LIBRARIES} ${Boost_LIBRARIES} ${CVC4_LIBRARIES} ${lib_gmp_c} ${lib_gmp_cxx})
 
diff --git a/HippTest/src/cmake/ExecuteTest.cmake b/HippTest/src/cmake/ExecuteTest.cmake
new file mode 100644
index 0000000..44e432b
--- /dev/null
+++ b/HippTest/src/cmake/ExecuteTest.cmake
@@ -0,0 +1,11 @@
+# =============================================================================
+#       CMake module getting the git description of the current commit  
+# =============================================================================
+
+
+message (STATUS "****** Execute HiPP World ******")
+
+
+execute_process (COMMAND                         ${MAIN_CXX_SRC_FILES}/HippTest
+                WORKING_DIRECTORY                ${CMAKE_SOURCE_DIR}
+                )
diff --git a/HippTest/src/main/HippTest.cpp b/HippTest/src/main/HippTest.cpp
index 8d747d8..248380b 100644
--- a/HippTest/src/main/HippTest.cpp
+++ b/HippTest/src/main/HippTest.cpp
@@ -10,6 +10,6 @@
 using namespace std;
 
 int main() {
-	cout << "!!!HiPP World!!!" << endl; // prints !!!Hello World!!!
+	cout << "!!! HiPP World !!!" << endl; // prints !!!Hello World!!!
 	return 0;
 }
