diff --git a/CMakeLists.txt b/CMakeLists.txt
index 18c1616..45f3e73 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,20 +1,29 @@
 cmake_minimum_required(VERSION 3.0)
 
-# Check to see where cmake is located.
-if( IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/cmake )
-    LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
-elseif( IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../cmake )
-    LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)
+project(osdev_logutils)
+# ==============================================================================
+# Check to see if we're a submodule or top-repo.
+if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/submodules/cmake)
+    message( STATUS "Looks like we're a single module" )
+    LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/submodules/cmake)
+elseif(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../submodules/cmake)
+    message( STATUS "Looks like we're a submodule" )
+    LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../submodules/cmake)
 else()
-    return()
+    message( FATAL_ERROR "No cmake directory found. Did you run the submodules script?" )
 endif()
 
+# ==============================================================================
 # Check to see if there is versioning information available
-if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/osdev_versioning/cmake)
-    LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/osdev_versioning/cmake)
-    include(osdevversion)
+if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/submodules/versioning)
+    LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/submodules/versioning/cmake)
+elseif(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../submodules/versioning)
+    LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../submodules/versioning/cmake)
+else()
+    message( FATAL_ERROR "No ${CURRENT_SOURCE_DIR}/osdev_versioning directory found. Did you run the submodules script?" )
 endif()
 
+# ==============================================================================
 include(projectheader)
 project_header(osdev_logutils)
 
diff --git a/scripts/setup_submodules b/scripts/setup_submodules
index 7b5e7d8..5c19076 100755
--- a/scripts/setup_submodules
+++ b/scripts/setup_submodules
@@ -107,10 +107,10 @@ function add_submodules()
         echo -e "< ${SUB_MODULE} >"
         if [[ "${OPEN_REPOS[*]}" =~ "${SUB_MODULE}" ]];
         then
-            git submodule add -f ${GIT_URL_SUBS}/${SUB_MODULE}.git ${SUB_MODULE}
+            git submodule add -f ${GIT_URL_SUBS}/${SUB_MODULE}.git submodules/${SUB_MODULE}
             git config submodule.${SUB_MODULE}.url ${GIT_URL_SUBS}/${SUB_MODULE}.git
         else
-            git submodule add -f ${GIT_URL_SUBS_CLOSED}/${SUB_MODULE}.git ${SUB_MODULE}
+            git submodule add -f ${GIT_URL_SUBS_CLOSED}/${SUB_MODULE}.git submodules/${SUB_MODULE}
             git config submodule.${SUB_MODULE}.url ${GIT_URL_SUBS_CLOSED}/${SUB_MODULE}.git
         fi
     done