reorganize examples
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 45c8ddf..1448879 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -51,8 +51,9 @@
 file(GLOB BENCH_SOURCES bench/*.cpp)
 add_executable(bench-tests ${BENCH_SOURCES})
 
-file(GLOB TRIANGULATE_SOURCES examples/triangulate/*.cpp)
-add_executable(triangulate ${TRIANGULATE_SOURCES})
+#examples
+add_executable(triangulate-geojson examples/triangulate_geojson.cpp)
+add_executable(basic examples/basic.cpp)
 
 
 # link benchmark static library to the bench-tests binary so the bench tests know where to find the benchmark impl code
diff --git a/README.md b/README.md
index 301c53f..a61b709 100644
--- a/README.md
+++ b/README.md
@@ -16,34 +16,34 @@
 
 ## Usage
 
+`examples/basic.cpp`
+
 ```CPP
 #include <delaunator.hpp>
 #include <cstdio>
 
-//...
-int main(int, char* argv[]) {
-    //...
-    std::vector<double> coords = {/* x0, y0, x1, y1, ... */};
+int main() {
+    /* x0, y0, x1, y1, ... */
+    std::vector<double> coords = {-1, 1, 1, 1, 1, -1, -1, -1};
 
     //triangulation happens here
-    //note moving points to constructor
-    delaunator::Delaunator delaunator(coords);
+    delaunator::Delaunator d(coords);
 
-    for(std::size_t i = 0; i < delaunator.triangles.size(); i+=3) {
+    for(std::size_t i = 0; i < d.triangles.size(); i+=3) {
         printf(
             "Triangle points: [[%f, %f], [%f, %f], [%f, %f]]\n",
-            delaunator.coords[2 * delaunator.triangles[i]],         //tx0
-            delaunator.coords[2 * delaunator.triangles[i] + 1],     //ty0
-            delaunator.coords[2 * delaunator.triangles[i + 1]],     //tx1
-            delaunator.coords[2 * delaunator.triangles[i + 1] + 1], //ty1
-            delaunator.coords[2 * delaunator.triangles[i + 2]],     //tx2
-            delaunator.coords[2 * delaunator.triangles[i + 2] + 1], //ty2
-        )
+            d.coords[2 * d.triangles[i]],        //tx0
+            d.coords[2 * d.triangles[i] + 1],    //ty0
+            d.coords[2 * d.triangles[i + 1]],    //tx1
+            d.coords[2 * d.triangles[i + 1] + 1],//ty1
+            d.coords[2 * d.triangles[i + 2]],    //tx2
+            d.coords[2 * d.triangles[i + 2] + 1] //ty2
+        );
     }
 }
 ```
 
-For full example see `examples/triangulate/main.cpp`
+[See more examples here](./examples)
 
 ## TODO
 
diff --git a/examples/basic.cpp b/examples/basic.cpp
new file mode 100644
index 0000000..276ceb2
--- /dev/null
+++ b/examples/basic.cpp
@@ -0,0 +1,22 @@
+#include <delaunator.hpp>
+#include <cstdio>
+
+int main() {
+    /* x0, y0, x1, y1, ... */
+    std::vector<double> coords = {-1, 1, 1, 1, 1, -1, -1, -1};
+
+    //triangulation happens here
+    delaunator::Delaunator d(coords);
+
+    for(std::size_t i = 0; i < d.triangles.size(); i+=3) {
+        printf(
+            "Triangle points: [[%f, %f], [%f, %f], [%f, %f]]\n",
+            d.coords[2 * d.triangles[i]],        //tx0
+            d.coords[2 * d.triangles[i] + 1],    //ty0
+            d.coords[2 * d.triangles[i + 1]],    //tx1
+            d.coords[2 * d.triangles[i + 1] + 1],//ty1
+            d.coords[2 * d.triangles[i + 2]],    //tx2
+            d.coords[2 * d.triangles[i + 2] + 1] //ty2
+        );
+    }
+}
diff --git a/examples/triangulate/main.cpp b/examples/triangulate_geojson.cpp
similarity index 98%
rename from examples/triangulate/main.cpp
rename to examples/triangulate_geojson.cpp
index fa82383..4c24850 100644
--- a/examples/triangulate/main.cpp
+++ b/examples/triangulate_geojson.cpp
@@ -1,7 +1,7 @@
 #include "rapidjson/document.h"
 #include "rapidjson/prettywriter.h"
 #include <delaunator.hpp>
-#include "../utils.hpp"
+#include "./utils.hpp"
 #include <cstdio>
 #include <fstream>
 #include <vector>