diff --git a/CMakeLists.txt b/CMakeLists.txt
index ccc56d8a708f7c3270277f2c54796656655aacfc..9764e339adf463f2d13d2c7f933a23caa2cd0227 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -15,9 +15,13 @@ 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})
 
 add_subdirectory(src)
 add_subdirectory(tests)
+
diff --git a/src/cell_tree.hpp b/src/cell_tree.hpp
index 43fac2429a657545251159a3fa97002b7243fe86..8827bb01d366ef783d7c69d01dcd1455a52053c7 100644
--- a/src/cell_tree.hpp
+++ b/src/cell_tree.hpp
@@ -9,7 +9,7 @@
 #include <ostream>
 #include <vector>
 
-#include "vector/include/Vector.hpp"
+#include <Vector.hpp>
 #include "tree.hpp"
 #include "util.hpp"
 
diff --git a/src/fvm.hpp b/src/fvm.hpp
index 69d23d0d1fe97e341ad8de3dc25ce8c0771ef78c..f047581ef96bb07819ac43c34673bd45ba0e2426 100644
--- a/src/fvm.hpp
+++ b/src/fvm.hpp
@@ -16,7 +16,7 @@
 #include <segment.hpp>
 #include <stimulus.hpp>
 
-#include <vector/include/Vector.hpp>
+#include <Vector.hpp>
 
 namespace nest {
 namespace mc {
diff --git a/src/indexed_view.hpp b/src/indexed_view.hpp
index 0cbc22a91b3235f70af6b851050af5e5fdefa3a2..01df7e99e222a95f95fb4c17fe01189ee554b5bd 100644
--- a/src/indexed_view.hpp
+++ b/src/indexed_view.hpp
@@ -1,6 +1,6 @@
 #pragma once
 
-#include <vector/include/Vector.hpp>
+#include <Vector.hpp>
 
 namespace nest {
 namespace mc {
diff --git a/src/ion.hpp b/src/ion.hpp
index 311e86003b4cfba2b4cd4ceb569fc97a346daca0..990eefccc4ddd339623c9e6fad04660a44b8f04a 100644
--- a/src/ion.hpp
+++ b/src/ion.hpp
@@ -1,6 +1,6 @@
 #pragma once
 
-#include <vector/include/Vector.hpp>
+#include <Vector.hpp>
 #include "indexed_view.hpp"
 
 namespace nest {
diff --git a/src/matrix.hpp b/src/matrix.hpp
index db9d2df7f56e8bfffb73051e996acb13d9fa0369..fe6501905ac423641f2517f70cfdb64f37a03234 100644
--- a/src/matrix.hpp
+++ b/src/matrix.hpp
@@ -4,7 +4,7 @@
 
 #include "util.hpp"
 
-#include <vector/include/Vector.hpp>
+#include <Vector.hpp>
 
 namespace nest {
 namespace mc {
diff --git a/src/mechanism_interface.cpp b/src/mechanism_interface.cpp
index 10fad45fa0d9776c4f45302e6bf196f995765e99..b02d7035181385e9c869d5e81c7e34ca0598f1e1 100644
--- a/src/mechanism_interface.cpp
+++ b/src/mechanism_interface.cpp
@@ -4,8 +4,9 @@
 //  include the mechanisms
 //
 
-#include <mechanisms/hh.hpp>
-#include <mechanisms/pas.hpp>
+#include <hh.hpp>
+#include <pas.hpp>
+
 
 namespace nest {
 namespace mc {
diff --git a/src/tree.hpp b/src/tree.hpp
index d517f7e4570fc9278bab22ff974a3baaa964ea50..72e22e831143f9c71c4e37a87e016edb0791a89c 100644
--- a/src/tree.hpp
+++ b/src/tree.hpp
@@ -6,7 +6,7 @@
 
 #include <cassert>
 
-#include "vector/include/Vector.hpp"
+#include <Vector.hpp>
 #include "algorithms.hpp"
 #include "util.hpp"
 
diff --git a/src/util.hpp b/src/util.hpp
index afa029ff9cfcba65258473875003c00f58c3d16b..25beee5b3226d3c3a53d88fdc360a07c54e796cc 100644
--- a/src/util.hpp
+++ b/src/util.hpp
@@ -1,6 +1,6 @@
 #pragma once
 
-#include "vector/include/Vector.hpp"
+#include <Vector.hpp>
 
 #ifdef DEBUG
 #define EXPECTS(expression) assert(expression)
diff --git a/tests/test_matrix.cpp b/tests/test_matrix.cpp
index 73663d6815d876e1740da4cee084c46255a74e3f..07738a6c1b4e90ba23b6f74fb96fedd19346245e 100644
--- a/tests/test_matrix.cpp
+++ b/tests/test_matrix.cpp
@@ -4,7 +4,7 @@
 
 #include <matrix.hpp>
 #include <math.hpp>
-#include <vector/include/Vector.hpp>
+#include <Vector.hpp>
 
 TEST(matrix, construct_from_parent_only)
 {
diff --git a/tests/util.hpp b/tests/util.hpp
index aeb2f8d3e585a1603de6c7745b566a8b11aee12c..bdc21531219726d998edeb82d22bc48a65714d94 100644
--- a/tests/util.hpp
+++ b/tests/util.hpp
@@ -8,7 +8,7 @@
 #include <cmath>
 
 #include <util.hpp>
-#include <json/src/json.hpp>
+#include <json.hpp>
 
 // helpful code for running tests
 // a bit messy: refactor when it gets heavier and obvious patterns emerge...
diff --git a/tests/validate_ball_and_stick.cpp b/tests/validate_ball_and_stick.cpp
index a2aef0ada111aa7ecb8d150034a437016e987ce1..6e8098bd68daa2185b5fc2d374d93304f6f6c2c8 100644
--- a/tests/validate_ball_and_stick.cpp
+++ b/tests/validate_ball_and_stick.cpp
@@ -6,7 +6,7 @@
 #include <cell.hpp>
 #include <fvm.hpp>
 
-#include <json/src/json.hpp>
+#include <json.hpp>
 
 // compares results with those generated by nrn/ball_and_stick.py
 TEST(ball_and_stick, neuron_baseline)