diff --git a/assignment-client/CMakeLists.txt b/assignment-client/CMakeLists.txt
index f1a8566af3..5d61190286 100644
--- a/assignment-client/CMakeLists.txt
+++ b/assignment-client/CMakeLists.txt
@@ -24,4 +24,10 @@ include(${MACRO_DIR}/LinkHifiLibrary.cmake)
 link_hifi_library(shared ${TARGET_NAME} ${ROOT_DIR})
 link_hifi_library(audio ${TARGET_NAME} ${ROOT_DIR})
 link_hifi_library(avatars ${TARGET_NAME} ${ROOT_DIR})
-link_hifi_library(voxels ${TARGET_NAME} ${ROOT_DIR})
\ No newline at end of file
+link_hifi_library(voxels ${TARGET_NAME} ${ROOT_DIR})
+
+# link the stk library
+set(STK_ROOT_DIR ${ROOT_DIR}/externals/stk)
+find_package(STK REQUIRED)
+target_link_libraries(${TARGET_NAME} ${STK_LIBRARIES})
+include_directories(${STK_INCLUDE_DIRS})
\ No newline at end of file
diff --git a/assignment-client/src/Agent.cpp b/assignment-client/src/Agent.cpp
index 98f0a0e525..ac6f1eca4f 100644
--- a/assignment-client/src/Agent.cpp
+++ b/assignment-client/src/Agent.cpp
@@ -13,7 +13,7 @@
 #include <NodeList.h>
 
 #include "Agent.h"
-#include "VoxelScriptingInterface.h"
+#include "voxels/VoxelScriptingInterface.h"
 
 Agent::Agent() :
     _shouldStop(false)
diff --git a/libraries/audio/src/AudioMixer.cpp b/assignment-client/src/audio/AudioMixer.cpp
similarity index 100%
rename from libraries/audio/src/AudioMixer.cpp
rename to assignment-client/src/audio/AudioMixer.cpp
diff --git a/libraries/audio/src/AudioMixer.h b/assignment-client/src/audio/AudioMixer.h
similarity index 100%
rename from libraries/audio/src/AudioMixer.h
rename to assignment-client/src/audio/AudioMixer.h
diff --git a/libraries/audio/src/AvatarAudioRingBuffer.cpp b/assignment-client/src/audio/AvatarAudioRingBuffer.cpp
similarity index 100%
rename from libraries/audio/src/AvatarAudioRingBuffer.cpp
rename to assignment-client/src/audio/AvatarAudioRingBuffer.cpp
diff --git a/libraries/audio/src/AvatarAudioRingBuffer.h b/assignment-client/src/audio/AvatarAudioRingBuffer.h
similarity index 100%
rename from libraries/audio/src/AvatarAudioRingBuffer.h
rename to assignment-client/src/audio/AvatarAudioRingBuffer.h
diff --git a/libraries/avatars/src/AvatarMixer.cpp b/assignment-client/src/avatars/AvatarMixer.cpp
similarity index 100%
rename from libraries/avatars/src/AvatarMixer.cpp
rename to assignment-client/src/avatars/AvatarMixer.cpp
diff --git a/libraries/avatars/src/AvatarMixer.h b/assignment-client/src/avatars/AvatarMixer.h
similarity index 100%
rename from libraries/avatars/src/AvatarMixer.h
rename to assignment-client/src/avatars/AvatarMixer.h
diff --git a/assignment-client/src/main.cpp b/assignment-client/src/main.cpp
index 16522a2d87..2ad8345e53 100644
--- a/assignment-client/src/main.cpp
+++ b/assignment-client/src/main.cpp
@@ -16,8 +16,8 @@
 
 #include "Agent.h"
 #include <Assignment.h>
-#include <AudioMixer.h>
-#include <AvatarMixer.h>
+#include "audio/AudioMixer.h"
+#include "avatars/AvatarMixer.h"
 #include <Logging.h>
 #include <NodeList.h>
 #include <PacketHeaders.h>
diff --git a/assignment-client/src/VoxelScriptingInterface.cpp b/assignment-client/src/voxels/VoxelScriptingInterface.cpp
similarity index 100%
rename from assignment-client/src/VoxelScriptingInterface.cpp
rename to assignment-client/src/voxels/VoxelScriptingInterface.cpp
diff --git a/assignment-client/src/VoxelScriptingInterface.h b/assignment-client/src/voxels/VoxelScriptingInterface.h
similarity index 100%
rename from assignment-client/src/VoxelScriptingInterface.h
rename to assignment-client/src/voxels/VoxelScriptingInterface.h
diff --git a/cmake/macros/SetupHifiProject.cmake b/cmake/macros/SetupHifiProject.cmake
index 8b2bcb542c..e828e68be2 100644
--- a/cmake/macros/SetupHifiProject.cmake
+++ b/cmake/macros/SetupHifiProject.cmake
@@ -2,7 +2,15 @@ MACRO(SETUP_HIFI_PROJECT TARGET INCLUDE_QT)
     project(${TARGET})
     
     # grab the implemenation and header files
-    file(GLOB TARGET_SRCS src/*.cpp src/*.h src/*.c)
+    file(GLOB TARGET_SRCS src/*)
+    
+    file(GLOB SRC_SUBDIRS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR}/src/*)
+    foreach(DIR ${SRC_SUBDIRS})
+      if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/src/${DIR})
+        FILE(GLOB DIR_CONTENTS src/${DIR}/*)
+        SET(TARGET_SRCS ${TARGET_SRCS} ${DIR_CONTENTS})
+      endif()
+    endforeach()
     
     # add the executable
     add_executable(${TARGET} ${TARGET_SRCS})
diff --git a/libraries/audio/CMakeLists.txt b/libraries/audio/CMakeLists.txt
index 6c458149bc..2d82fff1e1 100644
--- a/libraries/audio/CMakeLists.txt
+++ b/libraries/audio/CMakeLists.txt
@@ -16,10 +16,4 @@ include(${MACRO_DIR}/IncludeGLM.cmake)
 include_glm(${TARGET_NAME} ${ROOT_DIR})
 
 include(${MACRO_DIR}/LinkHifiLibrary.cmake)
-link_hifi_library(shared ${TARGET_NAME} ${ROOT_DIR})
-
-# link the stk library
-set(STK_ROOT_DIR ${ROOT_DIR}/externals/stk)
-find_package(STK REQUIRED)
-target_link_libraries(${TARGET_NAME} ${STK_LIBRARIES})
-include_directories(${STK_INCLUDE_DIRS})
\ No newline at end of file
+link_hifi_library(shared ${TARGET_NAME} ${ROOT_DIR})
\ No newline at end of file