diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9764e339adf463f2d13d2c7f933a23caa2cd0227..d49802d7a95f594f012899183bd6dda1f51e023d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -15,10 +15,7 @@ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
 set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
 
 include_directories(${CMAKE_SOURCE_DIR}/external)
-include_directories(${CMAKE_SOURCE_DIR}/external/vector/include)
-include_directories(${CMAKE_SOURCE_DIR}/external/json/src)
 include_directories(${CMAKE_SOURCE_DIR}/include)
-include_directories(${CMAKE_SOURCE_DIR}/include/mechanisms)
 include_directories(${CMAKE_SOURCE_DIR}/src)
 include_directories(${CMAKE_SOURCE_DIR})
 
diff --git a/src/cell_tree.hpp b/src/cell_tree.hpp
index 8827bb01d366ef783d7c69d01dcd1455a52053c7..fab1163b1bbf9b8c43dbf954b4a7081c4e9dcc7f 100644
--- a/src/cell_tree.hpp
+++ b/src/cell_tree.hpp
@@ -9,7 +9,7 @@
 #include <ostream>
 #include <vector>
 
-#include <Vector.hpp>
+#include <vector/include/Vector.hpp>
 #include "tree.hpp"
 #include "util.hpp"
 
diff --git a/src/fvm.hpp b/src/fvm.hpp
index 1dbbdfdec87d3051d30450182c6349614701e31e..d0c6f90272ee5f48fc7727a1aab519e3bebe5fdc 100644
--- a/src/fvm.hpp
+++ b/src/fvm.hpp
@@ -4,7 +4,7 @@
 #include <map>
 #include <string>
 #include <vector>
-#include <Vector.hpp>
+#include <vector/include/Vector.hpp>
 
 #include "algorithms.hpp"
 #include "cell.hpp"
diff --git a/src/indexed_view.hpp b/src/indexed_view.hpp
index 01df7e99e222a95f95fb4c17fe01189ee554b5bd..0cbc22a91b3235f70af6b851050af5e5fdefa3a2 100644
--- a/src/indexed_view.hpp
+++ b/src/indexed_view.hpp
@@ -1,6 +1,6 @@
 #pragma once
 
-#include <Vector.hpp>
+#include <vector/include/Vector.hpp>
 
 namespace nest {
 namespace mc {
diff --git a/src/ion.hpp b/src/ion.hpp
index 883658b4b59ab3e605f1ac0f49088329d6bdb33d..8f526ade3358dac54722f3bfd96a003870412623 100644
--- a/src/ion.hpp
+++ b/src/ion.hpp
@@ -1,6 +1,6 @@
 #pragma once
 
-#include <Vector.hpp>
+#include <vector/include/Vector.hpp>
 
 #include "indexed_view.hpp"
 
diff --git a/src/matrix.hpp b/src/matrix.hpp
index 889a3e514c86921c7876f05be45a960884b81ccd..e86c9b897b66a529252721b739ae20f96cfa16ae 100644
--- a/src/matrix.hpp
+++ b/src/matrix.hpp
@@ -1,7 +1,7 @@
 #pragma once
 
 #include <type_traits>
-#include <Vector.hpp>
+#include <vector/include/Vector.hpp>
 
 #include "util.hpp"
 
diff --git a/src/mechanism_interface.cpp b/src/mechanism_interface.cpp
index b02d7035181385e9c869d5e81c7e34ca0598f1e1..f44d1f561d3efcc51b262b5bb32e0a95084bbcb5 100644
--- a/src/mechanism_interface.cpp
+++ b/src/mechanism_interface.cpp
@@ -4,8 +4,8 @@
 //  include the mechanisms
 //
 
-#include <hh.hpp>
-#include <pas.hpp>
+#include <mechanisms/hh.hpp>
+#include <mechanisms/pas.hpp>
 
 
 namespace nest {
diff --git a/src/tree.hpp b/src/tree.hpp
index 7d702cc229cf9cab34339c6f7adcc9d200d48608..be96e3619424ec54b143e694108188419802e67b 100644
--- a/src/tree.hpp
+++ b/src/tree.hpp
@@ -4,7 +4,7 @@
 #include <cassert>
 #include <numeric>
 #include <vector>
-#include <Vector.hpp>
+#include <vector/include/Vector.hpp>
 
 #include "algorithms.hpp"
 #include "util.hpp"
diff --git a/src/util.hpp b/src/util.hpp
index 25beee5b3226d3c3a53d88fdc360a07c54e796cc..c4362b25d0ad9e54e962b118e84ce974b422a636 100644
--- a/src/util.hpp
+++ b/src/util.hpp
@@ -1,6 +1,6 @@
 #pragma once
 
-#include <Vector.hpp>
+#include <vector/include/Vector.hpp>
 
 #ifdef DEBUG
 #define EXPECTS(expression) assert(expression)
diff --git a/tests/test_tree.cpp b/tests/test_tree.cpp
index 3db9adbb77ae65607935239ff52a7b97402a0253..c27c1674adbb4c5314be9ad0f4d65b80b06a2677 100644
--- a/tests/test_tree.cpp
+++ b/tests/test_tree.cpp
@@ -1,6 +1,6 @@
 #include <fstream>
 #include <iostream>
-#include <json.hpp>
+#include <json/src/json.hpp>
 #include <numeric>
 #include <vector>
 
diff --git a/tests/util.hpp b/tests/util.hpp
index 92a9bcb59d7b0abf57acb8131ae9772e72cbdbf8..6252c7e439b334342c14b17285418a0e1f7a1c63 100644
--- a/tests/util.hpp
+++ b/tests/util.hpp
@@ -6,7 +6,7 @@
 #include <string>
 #include <vector>
 
-#include <json.hpp>
+#include <json/src/json.hpp>
 #include <util.hpp>
 
 // helpful code for running tests
diff --git a/tests/validate_ball_and_stick.cpp b/tests/validate_ball_and_stick.cpp
index f871610cf002b4a4c058b4c8394beb2e2bae2b04..1a9bddb7e3aaa031cbf4212e0c1898767f3682bb 100644
--- a/tests/validate_ball_and_stick.cpp
+++ b/tests/validate_ball_and_stick.cpp
@@ -1,5 +1,5 @@
 #include <fstream>
-#include <json.hpp>
+#include <json/src/json.hpp>
 
 #include "gtest.h"
 #include "util.hpp"
diff --git a/tests/validate_soma.cpp b/tests/validate_soma.cpp
index df9ac7bd5811875948edc7ccf56d0bb60ed5d7b8..44d8235a4463e153c87fa58b325b7694440ed3a1 100644
--- a/tests/validate_soma.cpp
+++ b/tests/validate_soma.cpp
@@ -1,5 +1,5 @@
 #include <fstream>
-#include <json.hpp>
+#include <json/src/json.hpp>
 
 #include "gtest.h"
 #include "util.hpp"