diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5e65099568c9177102745a986b43643537ba4832..a2301c8a5c5932105b7a0d65a494aa1f7b1dc4b8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -42,6 +42,10 @@ FILE( GLOB_RECURSE library_sources ${PROJECT_SOURCE_DIR}/src/*.cc )
 # dependency list in build order
 SET( DEPENDENCIES XERCES Geant4 GDML LCDD LCIO HEPPDT )
 
+IF ( NOT DEPENDENCY_INSTALL_DIR )
+    SET( DEPENDENCY_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/extdeps )
+ENDIF()
+
 ADD_CUSTOM_TARGET( extdeps )
 FOREACH( dependency ${DEPENDENCIES} )
     #MESSAGE( "processing dep: ${dependency}" )
@@ -68,15 +72,16 @@ ENDFOREACH()
 
 IF ( DEPENDENCIES_NOTFOUND )
     MESSAGE( "Some dependencies were not found.  Run 'make' to build them, or rerun CMake and provide their location (e.g. Geant4_DIR etc.)." ) 
-    MESSAGE( "After building any missing dependencies you will need to rerun CMake." )
+    MESSAGE( "Set '-DDEPENDENCY_INSTALL_DIR=/my/install/dir' to set the directory where external projects will be installed." )
+    MESSAGE( "After building any missing dependencies you will need to rerun CMake to resolve them for the build." )
 ELSE()
 
-    MESSAGE( "All dependencies were found.  Run 'make' to build SLIC and 'make install' to install to '${CMAKE_INSTALL_PREFIX}'." )
+    MESSAGE( "All dependencies were found.  Run 'make' to build SLIC and 'make install' to install to: ${CMAKE_INSTALL_PREFIX}" )
 
     # build user plugin library
     FILE( GLOB_RECURSE plugin_sources ${PROJECT_SOURCE_DIR}/plugins/*.cc )
     ADD_LIBRARY( slicPlugins SHARED ${plugin_sources} )
-    INSTALL( TARGETS slicPlugins DESTINATION ${CMAKE_INSTALL_PREFIX}/slic/lib )
+    INSTALL( TARGETS slicPlugins DESTINATION ${CMAKE_INSTALL_PREFIX}/lib )
 
     # set executable target
     ADD_EXECUTABLE( slic ${library_sources} slic.cc )
@@ -104,11 +109,11 @@ ELSE()
     LINK_DIRECTORIES( ${GDML_LIBRARY_DIR} ${LCDD_LIBRARY_DIR} ${LCIO_LIBRARY_DIRS} )
 
     # install
-    INSTALL( TARGETS slic slic DESTINATION slic/bin )
+    INSTALL( TARGETS slic slic DESTINATION bin )
 
     # install env setup script
     CONFIGURE_FILE( ${PROJECT_SOURCE_DIR}/scripts/slic-env.sh.in ${CMAKE_CURRENT_BINARY_DIR}/slic-env.sh )
-    INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/slic-env.sh DESTINATION slic/bin 
+    INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/slic-env.sh DESTINATION bin 
             PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
 ENDIF()
 
diff --git a/cmake/InstallGDML.cmake b/cmake/InstallGDML.cmake
index 81ca5363092859a75277b9aace015fba73aeb2ca..39b1c6031da40e4f737035af85372452572986b7 100644
--- a/cmake/InstallGDML.cmake
+++ b/cmake/InstallGDML.cmake
@@ -15,9 +15,9 @@ EXTERNALPROJECT_ADD(
     PATCH_COMMAND ""
 
     SOURCE_DIR "${CMAKE_BINARY_DIR}/gdml"
-    CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}/gdml -DXERCES_DIR=${XERCES_DIR} -DGeant4_DIR=${Geant4_DIR}
+    CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${DEPENDENCY_INSTALL_DIR}/gdml -DXERCES_DIR=${XERCES_DIR} -DGeant4_DIR=${Geant4_DIR}
     
     BUILD_COMMAND make -j4
 )
 
-SET( GDML_DIR ${CMAKE_INSTALL_PREFIX}/gdml CACHE PATH "GDML install dir" FORCE )
+SET( GDML_DIR ${DEPENDENCY_INSTALL_DIR}/gdml CACHE PATH "GDML install dir" FORCE )
diff --git a/cmake/InstallGeant4.cmake b/cmake/InstallGeant4.cmake
index 049a47264a114daae960b29c29f4d17ee48e2de3..fb78efbb0d903ec7575d623149ecc2befcf36628 100644
--- a/cmake/InstallGeant4.cmake
+++ b/cmake/InstallGeant4.cmake
@@ -21,10 +21,10 @@ EXTERNALPROJECT_ADD(
 
     SOURCE_DIR "${CMAKE_BINARY_DIR}/geant4"
     
-    CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}/geant4 -DGEANT4_INSTALL_DATA=${GEANT4_INSTALL_DATA}
+    CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${DEPENDENCY_INSTALL_DIR}/geant4 -DGEANT4_INSTALL_DATA=${GEANT4_INSTALL_DATA}
     
     BUILD_COMMAND make -j4
 )
 
 STRING( REPLACE "v" "" Geant4_VERSION_NUMBER ${Geant4_VERSION} )
-SET( Geant4_DIR ${CMAKE_INSTALL_PREFIX}/geant4/lib64/Geant4-${Geant4_VERSION_NUMBER} CACHE PATH "Geant4 install dir" FORCE )
+SET( Geant4_DIR ${DEPENDENCY_INSTALL_DIR}/geant4/lib64/Geant4-${Geant4_VERSION_NUMBER} CACHE PATH "Geant4 install dir" FORCE )
diff --git a/cmake/InstallHEPPDT.cmake b/cmake/InstallHEPPDT.cmake
index 6532351522d8797c59acb0d45732b5665ca02ed0..43e92c26efee756e380c727d0d2e8d634da771e1 100644
--- a/cmake/InstallHEPPDT.cmake
+++ b/cmake/InstallHEPPDT.cmake
@@ -8,7 +8,7 @@ EXTERNALPROJECT_ADD(
     UPDATE_COMMAND ""
     PATCH_COMMAND ""
     
-    CONFIGURE_COMMAND "${CMAKE_BINARY_DIR}/heppdt/configure" --prefix=${CMAKE_INSTALL_PREFIX}/heppdt
+    CONFIGURE_COMMAND "${CMAKE_BINARY_DIR}/heppdt/configure" --prefix=${DEPENDENCY_INSTALL_DIR}/heppdt
 )
 
-SET( HEPPDT_DIR ${CMAKE_INSTALL_PREFIX}/heppdt CACHE PATH "HEPPDT install dir" FORCE )
+SET( HEPPDT_DIR ${DEPENDENCY_INSTALL_DIR}/heppdt CACHE PATH "HEPPDT install dir" FORCE )
diff --git a/cmake/InstallLCDD.cmake b/cmake/InstallLCDD.cmake
index 138229aba9da0406e35421a55dff497379bf7040..761fe157796960f3edfb57c89da3e1b810fd6cea 100644
--- a/cmake/InstallLCDD.cmake
+++ b/cmake/InstallLCDD.cmake
@@ -15,9 +15,9 @@ EXTERNALPROJECT_ADD(
 
     SOURCE_DIR "${CMAKE_BINARY_DIR}/lcdd"
 
-    CMAKE_ARGS -DINSTALL_DOC=OFF -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}/lcdd -DGDML_DIR=${GDML_DIR} -DXERCES_DIR=${XERCES_DIR} -DGeant4_DIR=${Geant4_DIR}
+    CMAKE_ARGS -DINSTALL_DOC=OFF -DCMAKE_INSTALL_PREFIX=${DEPENDENCY_INSTALL_DIR}/lcdd -DGDML_DIR=${GDML_DIR} -DXERCES_DIR=${XERCES_DIR} -DGeant4_DIR=${Geant4_DIR}
     
     BUILD_COMMAND make -j4
 )
 
-SET( LCDD_DIR "${CMAKE_INSTALL_PREFIX}/lcdd" CACHE PATH "LCDD install dir" FORCE )
+SET( LCDD_DIR "${DEPENDENCY_INSTALL_DIR}/lcdd" CACHE PATH "LCDD install dir" FORCE )
diff --git a/cmake/InstallLCIO.cmake b/cmake/InstallLCIO.cmake
index 2fd7720103f5dea6289c953a94bc0a1606dc14f7..84b14f8c32e459fba5bfeb33f92443b5d3995b0b 100644
--- a/cmake/InstallLCIO.cmake
+++ b/cmake/InstallLCIO.cmake
@@ -12,9 +12,9 @@ EXTERNALPROJECT_ADD(
     PATCH_COMMAND ""
 
     SOURCE_DIR "${CMAKE_BINARY_DIR}/lcio"
-    CMAKE_ARGS -DINSTALL_DOC=OFF -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}/lcio
+    CMAKE_ARGS -DINSTALL_DOC=OFF -DCMAKE_INSTALL_PREFIX=${DEPENDENCY_INSTALL_DIR}/lcio
     
     BUILD_COMMAND make -j4
 )
 
-SET( LCIO_DIR ${CMAKE_INSTALL_PREFIX}/lcio CACHE PATH "LCIO install dir" FORCE )
+SET( LCIO_DIR ${DEPENDENCY_INSTALL_DIR}/lcio CACHE PATH "LCIO install dir" FORCE )
diff --git a/cmake/InstallXERCES.cmake b/cmake/InstallXERCES.cmake
index 58853962b095eeba5654c248875b750a56f9cf03..0ab638c3331af9dc69ee251c975367d5089b5e15 100644
--- a/cmake/InstallXERCES.cmake
+++ b/cmake/InstallXERCES.cmake
@@ -8,7 +8,7 @@ EXTERNALPROJECT_ADD(
     UPDATE_COMMAND ""
     PATCH_COMMAND ""
     
-    CONFIGURE_COMMAND "${CMAKE_BINARY_DIR}/xerces/configure" --enable-shared --disable-static --prefix=${CMAKE_INSTALL_PREFIX}/xerces
+    CONFIGURE_COMMAND "${CMAKE_BINARY_DIR}/xerces/configure" --enable-shared --disable-static --prefix=${DEPENDENCY_INSTALL_DIR}/xerces
 )
 
-SET( XERCES_DIR ${CMAKE_INSTALL_PREFIX}/xerces CACHE PATH "XERCES install dir" FORCE )
+SET( XERCES_DIR ${DEPENDENCY_INSTALL_DIR}/xerces CACHE PATH "XERCES install dir" FORCE )
diff --git a/scripts/slic-env.sh.in b/scripts/slic-env.sh.in
index d2e03850185010dbf309dd37ded83b6ab71cc03b..1f2800afd16f8ae68812ec5f0d2a477bb9df343e 100755
--- a/scripts/slic-env.sh.in
+++ b/scripts/slic-env.sh.in
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-export LD_LIBRARY_PATH=@HEPPDT_DIR@/lib/:@GDML_DIR@/lib:@LCDD_DIR@/lib:@LCIO_DIR@/lib:@XERCES_DIR@/lib:@CMAKE_INSTALL_PREFIX@/slic/lib
+export LD_LIBRARY_PATH=@HEPPDT_DIR@/lib/:@GDML_DIR@/lib:@LCDD_DIR@/lib:@LCIO_DIR@/lib:@XERCES_DIR@/lib:@CMAKE_INSTALL_PREFIX@/lib
 
 if [ "@CMAKE_CXX_COMPILER@" != "/usr/bin/g++" ]
 then
@@ -11,9 +11,9 @@ fi
 
 . @Geant4_DIR@/../../bin/geant4.sh
 
-export PATH=@CMAKE_INSTALL_PREFIX@/slic/bin:$PATH
+export PATH=@CMAKE_INSTALL_PREFIX@/bin:$PATH
 
 echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH"
-echo "GDML_SCHEMA_DIR=$GDML_SCHEMA_DIR"
+#echo "GDML_SCHEMA_DIR=$GDML_SCHEMA_DIR"
 env | grep G4 | sort
 which slic