some changes after Kai feedback
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c12ca18..fb12fb5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,17 +1,18 @@
 cmake_minimum_required(VERSION 3.0.0)
 project(delaunator VERSION 0.1.0)
 set (CMAKE_CXX_STANDARD 17)
-if (NOT EXISTS "${PROJECT_SOURCE_DIR}/includes")
-    execute_process(COMMAND bash "-c" "(cd ${PROJECT_SOURCE_DIR} && ./fetch-includes.sh)")
+if (NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/includes")
+    execute_process(COMMAND bash "-c" "(cd ${CMAKE_CURRENT_SOURCE_DIR} && ./fetch-includes.sh)")
 endif()
-# message("PROJECT_SOURCE_DIR ${PROJECT_SOURCE_DIR}")
+# message("PROJECT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}")
 
 add_executable(main src/main.cpp)
 add_library(delaunator src/delaunator.cpp)
-target_include_directories (main PRIVATE "${PROJECT_SOURCE_DIR}/includes/rapidjson/include")
-target_include_directories (delaunator PRIVATE "${PROJECT_SOURCE_DIR}/includes/rapidjson/include")
+target_include_directories (main PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/includes/rapidjson/include")
+target_include_directories (delaunator PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/includes/rapidjson/include")
+target_include_directories (delaunator PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/includes/prettyprint")
 target_link_libraries(main delaunator)
 
 set(CPACK_PROJECT_NAME ${PROJECT_NAME})
 set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
-include(CPack)
+# include(CPack)
diff --git a/fetch-includes.sh b/fetch-includes.sh
index 9039cab..5fd564c 100755
--- a/fetch-includes.sh
+++ b/fetch-includes.sh
@@ -4,3 +4,4 @@
 rm -rf ./includes/*
 
 git clone --branch v1.1.0 --depth=1 git@github.com:Tencent/rapidjson.git ./includes/rapidjson
+git clone --branch master --depth=1 git@github.com:louisdx/cxx-prettyprint.git ./includes/prettyprint
diff --git a/src/delaunator.cpp b/src/delaunator.cpp
index d12f110..16f86f8 100644
--- a/src/delaunator.cpp
+++ b/src/delaunator.cpp
@@ -5,6 +5,8 @@
 #include <tuple>
 #include <exception>
 #include <cmath>
+#include "prettyprint.hpp"
+#include <iostream>
 
 using namespace std;
 
@@ -158,20 +160,6 @@
     //         }
     //     }
     }
-    void print_array(unsigned long int ids[], unsigned int size) {
-        printf("[");
-        for (unsigned int i = 0; i < size; i++) {
-            printf("%lu, ", ids[i]);
-        }
-        printf("]\n");
-    }
-    void print_array(const vector<int> &v) {
-        printf("[");
-        for (int i = 0; i < v.size(); i++) {
-            printf("%d, ", v[i]);
-        }
-        printf("]\n");
-    }
 }
 
 Delaunator::Delaunator(const vector<double> &coords) {
@@ -241,7 +229,7 @@
     }
 
     if (min_radius == max_double) {
-        throw No_triangulation();
+        throw runtime_error("not triangulation");;
     }
 
     if (
@@ -267,13 +255,8 @@
 
     // sort the points by distance from the seed triangle circumcenter
     quicksort(ids, coords, 0, n - 1, m_center_x, m_center_y);
-    // print_array(ids, n);
 
     m_hash_size = ceil(sqrt(n));
     m_hash.reserve(m_hash_size);
     for (int i = 0; i < m_hash_size; i++) m_hash.push_back(-1);
-    print_array(m_hash);
-    // printf("isnan(m_hash[0])=%d\n", isnan(m_hash[0]));
-    printf("m_hash[1]=%d\n", m_hash[1]);
-    // printf("i0x=%f i0y=%f", i0x, i0y);
 };
diff --git a/src/delaunator.h b/src/delaunator.h
index 7276101..8cb0ea8 100644
--- a/src/delaunator.h
+++ b/src/delaunator.h
@@ -2,19 +2,12 @@
 #include <vector>
 #include <exception>
 
-using namespace std;
-
 class Delaunator{
     public:
-        Delaunator(const vector<double> &coords);
-        struct No_triangulation : public exception {
-            const char * what () const throw () {
-                return "No delaunay triangulation";
-            };
-        };
+        Delaunator(const std::vector<double> &coords);
     private:
         double m_center_x;
         double m_center_y;
         double m_hash_size;
-        vector<int> m_hash;
+        std::vector<int> m_hash;
 };