diff --git a/CMakeLists.txt b/CMakeLists.txt
index 73a52f30c35d16050fe94d1b49c390838a47f557..1f24a5348dbd4c6b73ca60f945c575b0b24b3b94 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,8 +2,6 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
 
 PROJECT(MOOSE)
 set(MOOSE_VERSION "3.1.1")
-include( ExternalProject )
-
 
 # Options to pass down to moose-core
 option(WITH_DOC "Build documentation" OFF)
@@ -12,45 +10,76 @@ option(WITH_BOOST "Use Boost libraries instead of GSL" OFF)
 option(WITH_CUDA "Use CUDA/GPU" OFF)
 option(WITH_MPI "Use MPI" OFF)
 
+find_package(PythonInterp REQUIRED)
+add_custom_target(moose ALL)
+
 ## intialize paths
-set(MOOSE_CORE_SOURCE_DIR "${CMAKE_SOURCE_DIR}/moose-core")
-set(MOOSE_CORE_BUILD_DIR ${CMAKE_BINARY_DIR}/_build_moose_core)
-set(MOOSE_CORE_INSTALL_DIR ${CMAKE_BINARY_DIR}/_install_moose_core)
-file(MAKE_DIRECTORY ${MOOSE_CORE_BUILD_DIR})
-set(DATA_DIR ${CMAKE_SOURCE_DIR}/data)
+set(PYMOOSE_SOURCE_DIR "${CMAKE_SOURCE_DIR}/moose-core")
+set(PYMOOSE_BUILD_DIR ${CMAKE_BINARY_DIR}/__moose_core_build)
+set(PYMOOSE_INSTALL_DIR ${CMAKE_BINARY_DIR}/__moose_core_install)
+
+set(MOOSE_GUI_DIR ${CMAKE_SOURCE_DIR}/moose-gui)
+set(MOOSE_GUI_INSTALL_DIR ${CMAKE_BINARY_DIR}/__moose-gui_install)
+
+set(MOOSE_EXAMPLE_DIR ${CMAKE_SOURCE_DIR}/moose-examples)
+set(MOOSE_EXAMPLE_INSTALL_DIR ${CMAKE_BINARY_DIR}/__moose-examples_install)
 
-set(OUTPUT_MOOSEBIN ${MOOSE_CORE_BUILD_DIR}/moose.bin)
+file(MAKE_DIRECTORY ${PYMOOSE_BUILD_DIR})
+
+# Its a good target since we can not be sure of python module extension on
+# different platform.
+set(OUTPUT_MOOSEBIN ${PYMOOSE_BUILD_DIR}/moose.bin)
 
 configure_file( ${CMAKE_SOURCE_DIR}/build_moose_core.sh.in 
     ${CMAKE_BINARY_DIR}/build_moose_core.sh )
 
+# Build pymoose module.
 add_custom_target( moose-core ALL DEPENDS ${OUTPUT_MOOSEBIN} )
 add_custom_command( OUTPUT ${OUTPUT_MOOSEBIN}
     COMMAND MAKE=$(MAKE) bash -c ${CMAKE_BINARY_DIR}/build_moose_core.sh
     VERBATIM
     )
 
-find_package(PythonInterp REQUIRED)
+# Now build moose-gui and moose-examples.
+add_custom_target( gui ALL 
+    COMMAND ${CMAKE_COMMAND} -E copy_directory 
+        ${MOOSE_GUI_DIR} ${MOOSE_GUI_INSTALL_DIR} 
+    COMMENT "Building moose-gui"
+    VERBATIM
+    )
+
+# Now copy moose-examples.
+add_custom_command( TARGET gui POST_BUILD
+    COMAMND ${CMAKE_COMMAND} -E copy_directory 
+        ${MOOSE_EXAMPLE_DIR} ${MOOSE_EXAMPLE_INSTALL_DIR}
+    VERBATIM
+    )
+
+add_dependencies(moose moose-core gui)
+
 
 ## moose-gui
 ## TODO: moose-gui should be a python module.
 set(MOOSE_GUI_DIR ${CMAKE_SOURCE_DIR}/moose-gui)
 
-install(DIRECTORY ${MOOSE_CORE_INSTALL_DIR}/
+install(DIRECTORY ${PYMOOSE_INSTALL_DIR}/
     DESTINATION ${CMAKE_INSTALL_PREFIX}
     PATTERN ".git" EXCLUDE
     )
 
-install(DIRECTORY ${MOOSE_GUI_DIR}
+install(DIRECTORY ${MOOSE_GUI_INSTALL_DIR}
     DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/moose/gui
     PATTERN ".git" EXCLUDE
     )
 
-configure_file( ${CMAKE_SOURCE_DIR}/cmake/moose.in ${CMAKE_BINARY_DIR}/moose )
-install(PROGRAMS ${CMAKE_BINARY_DIR}/moose
-    DESTINATION bin
+install(DIRECTORY ${MOOSE_EXAMPLE_DIR}
+    DESTINATION ${CMAKE_INSTALL_PREFIX}
+    PATTERN ".git" EXCLUDE 
     )
 
+configure_file( ${CMAKE_SOURCE_DIR}/cmake/moose.in ${CMAKE_BINARY_DIR}/moose )
+install(PROGRAMS ${CMAKE_BINARY_DIR}/moose DESTINATION bin)
+
 ## UNINSTALL
 add_custom_target(uninstall 
     DEPENDS __uninstall_moose-core__ __uninstall_moose-gui__
@@ -65,16 +94,21 @@ add_custom_command(OUTPUT __uninstall_moose-core__
 add_custom_command(OUTPUT  __uninstall_moose-gui__
     COMMAND ${CMAKE_COMMAND} -E remove_directory
     ${CMAKE_INSTALL_PREFIX}/lib/moose/gui
-    COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_INSTALL_PREFIX}/bin/moosegui
+    COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_INSTALL_PREFIX}/bin/moose
     )
 
 ################################################################################
 # CTEST 
 #################################################################################
 enable_testing( )
-add_test( NAME test_pymoose_sanity COMMAND ${PYTHON_EXECUTABLE} -c "import moose")
-add_test( NAME test_moogli_sanity COMMAND ${PYTHON_EXECUTABLE} -c "import moogli")
+add_test( NAME test_pymoose_sanity 
+    COMMAND ${PYTHON_EXECUTABLE} -c "import moose"
+    )
+add_test( NAME test_gui_sanity 
+    COMMAND ${PYTHON_EXECUTABLE} ${MOOSE_GUI_INSTALL_DIR}/mgui.py 
+    WORKING_DIRECTORY ${MOOSE_GUI_INSTALL_DIR}
+    )
 
-set_tests_properties( test_pymoose_sanity test_moogli_sanity  
-    PROPERTIES ENVIRONMENT "PYTHONPATH=${MOOSE_CORE_BUILD_DIR}/python"
+set_tests_properties( test_pymoose_sanity 
+    PROPERTIES ENVIRONMENT "PYTHONPATH=${PYMOOSE_BUILD_DIR}/python"
     )
diff --git a/build_moose_core.sh.in b/build_moose_core.sh.in
index ca3efbedd56972af545f3921016e671b41b69894..a42f723ac694efb14c6811051eaa58b25ffc788b 100755
--- a/build_moose_core.sh.in
+++ b/build_moose_core.sh.in
@@ -10,10 +10,13 @@ fi
 
 echo "Building MOOSE"
 (
-    cd @MOOSE_CORE_BUILD_DIR@
-    cmake -DCMAKE_INSTALL_PREFIX=@MOOSE_CORE_INSTALL_DIR@ \
-        @CMAKE_MOOSE_CORE_ARGS@ \
-        @MOOSE_CORE_SOURCE_DIR@ 
+    export GSL_ROOT_DIR=@GSL_ROOT_DIR@
+    export HDF5_ROOT=@HDF5_ROOT@
+    cd @PYMOOSE_BUILD_DIR@
+    cmake -DCMAKE_INSTALL_PREFIX=@PYMOOSE_INSTALL_DIR@ \
+        -DCMAKE_BUILD_TYPE=Release \
+        @CMAKE_PYMOOSE_ARGS@ \
+        @PYMOOSE_SOURCE_DIR@ 
     $MAKE
     ctest -V || echo "Some tests failed"
     $MAKE install
diff --git a/moose-core/CMakeLists.txt b/moose-core/CMakeLists.txt
index 1be4010205191f76caaa704a2d46aaf7a248f170..60acdcd6c3bd4ed1fe72ec2519a9cb2017097aab 100644
--- a/moose-core/CMakeLists.txt
+++ b/moose-core/CMakeLists.txt
@@ -285,7 +285,7 @@ endif(WITH_BOOST)
 # these two types because of --whole-archive option. See
 # BhallaLab/moose-core#66,
 if(WITH_GSL)
-    message(STATUS "Using STATIC gsl libraries: ${GSL_LIBRARIES}")
+    message(STATUS "Using gsl libraries: ${GSL_LIBRARIES}")
     foreach(GSL_LIB ${GSL_LIBRARIES} )
         if(GSL_LIB)
             get_filename_component( GSL_LIB_EXT ${GSL_LIB} EXT )
diff --git a/moose-core/VERSION b/moose-core/VERSION
index 5d81ec098289586638c2a5ef92effb6b018da44c..0eac0f049d7a3a484d117933bb24a319e65ed444 100644
--- a/moose-core/VERSION
+++ b/moose-core/VERSION
@@ -1 +1 @@
-3.1.1-66-gc180075
\ No newline at end of file
+3.1.1-67-g5dd1e81
\ No newline at end of file