diff --git a/.github/workflows/build-helloworld-vita.yml b/.github/workflows/build-helloworld-vita.yml
index bca9050b..97025188 100644
--- a/.github/workflows/build-helloworld-vita.yml
+++ b/.github/workflows/build-helloworld-vita.yml
@@ -49,6 +49,13 @@ jobs:
           export PATH=$VITASDK/bin:$PATH
           git submodule update --init --recursive
 
+      - name: Build Tools:
+        run: |
+          mkdir tools
+          cd tools
+          cmake .. -DDAWN_BUILD_TARGET=target-tools
+          make
+
       - name: Build Game
         run: |
           export PATH=$VITASDK/bin:$PATH
diff --git a/cmake/targets/CMakeLists.txt b/cmake/targets/CMakeLists.txt
index cf7871a6..774fd1f8 100644
--- a/cmake/targets/CMakeLists.txt
+++ b/cmake/targets/CMakeLists.txt
@@ -6,9 +6,9 @@
 # Check for build target, or default. This is pretty much not guaranteed.
 if(NOT DEFINED DAWN_BUILD_TARGET)
   if(WIN32)
-    set(DAWN_BUILD_TARGET "target-rose-win32-glfw")
+    set(DAWN_BUILD_TARGET "target-helloworld-win32-glfw")
   elseif(UNIX AND NOT APPLE)
-    set(DAWN_BUILD_TARGET "target-rose-linux64-glfw")
+    set(DAWN_BUILD_TARGET "target-helloworld-linux64-glfw")
   endif()
 endif()
 
diff --git a/cmake/targets/target-tools/CMakeLists.txt b/cmake/targets/target-tools/CMakeLists.txt
new file mode 100644
index 00000000..81cf5907
--- /dev/null
+++ b/cmake/targets/target-tools/CMakeLists.txt
@@ -0,0 +1,6 @@
+# Copyright (c) 2023 Dominic Masters
+# 
+# This software is released under the MIT License.
+# https://opensource.org/licenses/MIT
+
+set(DAWN_BUILDING dawntools CACHE INTERNAL ${DAWN_CACHE_TARGET})
\ No newline at end of file
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index a40b7772..3ac9757e 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -12,58 +12,53 @@ set(
 # Include shared libs
 add_subdirectory(dawnshared)
 
-# Include tools
-add_subdirectory(dawntools)
-
 # Change what we are building. Pulled from the cmake/targets dir.
 add_subdirectory(${DAWN_BUILDING})
 
 # Validate game project includes the target name
-if(NOT DEFINED DAWN_TARGET_NAME)
-  message(FATAL_ERROR "You need to define a DAWN_TARGET_NAME")
-endif()
+if(DEFINED DAWN_TARGET_NAME)
+  # Add in base library
+  add_subdirectory(dawn)
 
-# Add in base library
-add_subdirectory(dawn)
+  # Compile entry targets
+  if(DAWN_TARGET_WIN32)
+    add_subdirectory(dawnwin32)
+  elseif(DAWN_TARGET_LINUX64)
+    add_subdirectory(dawnlinux64)
+  elseif(DAWN_TARGET_VITA)
+    add_subdirectory(dawnvita)
+  else()
+    message(FATAL_ERROR "You need to define an entry target")
+  endif()
 
-# Compile entry targets
-if(DAWN_TARGET_WIN32)
-  add_subdirectory(dawnwin32)
-elseif(DAWN_TARGET_LINUX64)
-  add_subdirectory(dawnlinux64)
-elseif(DAWN_TARGET_VITA)
-  add_subdirectory(dawnvita)
-else()
-  message(FATAL_ERROR "You need to define an entry target")
-endif()
+  # Host Libraries
+  target_link_libraries(${DAWN_TARGET_NAME}
+    PUBLIC
+      ${DAWN_BUILD_HOST_LIBS}
+  )
 
-# Host Libraries
-target_link_libraries(${DAWN_TARGET_NAME}
-  PUBLIC
-    ${DAWN_BUILD_HOST_LIBS}
-)
+  # Compile support targets
+  if(DAWN_TARGET_GLFW)
+    add_subdirectory(dawnglfw)
+    add_subdirectory(dawnopengl)
+  endif()
 
-# Compile support targets
-if(DAWN_TARGET_GLFW)
-  add_subdirectory(dawnglfw)
-  add_subdirectory(dawnopengl)
-endif()
+  if(DAWN_TARGET_SDL2)
+    add_subdirectory(dawnsdl2)
+    add_subdirectory(dawnopengl)
+  endif()
 
-if(DAWN_TARGET_SDL2)
-  add_subdirectory(dawnsdl2)
-  add_subdirectory(dawnopengl)
-endif()
+  if(DAWN_TARGET_VITA)
+    add_subdirectory(dawnopengl)
+  endif()
 
-if(DAWN_TARGET_VITA)
-  add_subdirectory(dawnopengl)
-endif()
+  if(DAWN_TARGET_OPENAL)
+    add_subdirectory(dawnopenal)
+  endif()
 
-if(DAWN_TARGET_OPENAL)
-  add_subdirectory(dawnopenal)
-endif()
-
-# Late definitions, used by tools
-if(NOT DAWN_TARGET_DEPENDENCIES_LAST)
-else()
-  add_dependencies(${DAWN_TARGET_NAME} ${DAWN_TARGET_DEPENDENCIES_LAST})
+  # Late definitions, used by tools
+  if(NOT DAWN_TARGET_DEPENDENCIES_LAST)
+  else()
+    add_dependencies(${DAWN_TARGET_NAME} ${DAWN_TARGET_DEPENDENCIES_LAST})
+  endif()
 endif()
\ No newline at end of file
diff --git a/src/dawn/scene/components/physics/3d/CharacterController3D.cpp b/src/dawn/scene/components/physics/3d/CharacterController3D.cpp
index ac43ef6b..9cbba876 100644
--- a/src/dawn/scene/components/physics/3d/CharacterController3D.cpp
+++ b/src/dawn/scene/components/physics/3d/CharacterController3D.cpp
@@ -24,10 +24,10 @@ void CharacterController3D::onStart() {
     auto myCollider = item->getComponent<Collider3D>();
     auto colliders = getScene()->findComponents<Collider3D>();
     auto itCollider = colliders.begin();
-    while(itCollider != colliders.end()) {
-      (*itCollider)->
-      ++itCollider;
-    }
+    // while(itCollider != colliders.end()) {
+    //   (*itCollider)->
+    //   ++itCollider;
+    // }
 
     // Move / Update
     transform->setLocalPosition(transform->getLocalPosition() + (velocity * delta));