Updated test includes
diff --git a/test/bound_bones_test.cpp b/test/bound_bones_test.cpp
index 7aa312c..3667b0e 100644
--- a/test/bound_bones_test.cpp
+++ b/test/bound_bones_test.cpp
@@ -1,15 +1,15 @@
-#include "bones/skin.hpp"
-#include "bones/tendon.hpp"
-#include "catch.hpp"
-#include "core/binary_reader.hpp"
-#include "file.hpp"
+#include <rive/bones/skin.hpp>
+#include <rive/bones/tendon.hpp>
+#include <rive/core/binary_reader.hpp>
+#include <rive/file.hpp>
+#include <rive/node.hpp>
+#include <rive/shapes/clipping_shape.hpp>
+#include <rive/shapes/path_vertex.hpp>
+#include <rive/shapes/points_path.hpp>
+#include <rive/shapes/rectangle.hpp>
+#include <rive/shapes/shape.hpp>
 #include "no_op_renderer.hpp"
-#include "node.hpp"
-#include "shapes/clipping_shape.hpp"
-#include "shapes/path_vertex.hpp"
-#include "shapes/points_path.hpp"
-#include "shapes/rectangle.hpp"
-#include "shapes/shape.hpp"
+#include <catch.hpp>
 #include <cstdio>
 
 TEST_CASE("bound bones load correctly", "[bones]")
diff --git a/test/clip_test.cpp b/test/clip_test.cpp
index 7cee4d9..100e3f0 100644
--- a/test/clip_test.cpp
+++ b/test/clip_test.cpp
@@ -1,11 +1,11 @@
-#include "catch.hpp"
-#include "core/binary_reader.hpp"
-#include "file.hpp"
+#include <rive/core/binary_reader.hpp>
+#include <rive/file.hpp>
+#include <rive/node.hpp>
+#include <rive/shapes/clipping_shape.hpp>
+#include <rive/shapes/rectangle.hpp>
+#include <rive/shapes/shape.hpp>
 #include "no_op_renderer.hpp"
-#include "node.hpp"
-#include "shapes/clipping_shape.hpp"
-#include "shapes/rectangle.hpp"
-#include "shapes/shape.hpp"
+#include <catch.hpp>
 #include <cstdio>
 
 TEST_CASE("clipping loads correctly", "[clipping]")
diff --git a/test/distance_constraint_test.cpp b/test/distance_constraint_test.cpp
index ebf5064..2976571 100644
--- a/test/distance_constraint_test.cpp
+++ b/test/distance_constraint_test.cpp
@@ -1,11 +1,10 @@
+#include <rive/core/binary_reader.hpp>
+#include <rive/file.hpp>
+#include <rive/constraints/distance_constraint.hpp>
+#include <rive/node.hpp>
+#include <rive/math/vec2d.hpp>
+#include <rive/shapes/shape.hpp>
 #include "rive_testing.hpp"
-#include "core/binary_reader.hpp"
-#include "file.hpp"
-
-#include "constraints/distance_constraint.hpp"
-#include "node.hpp"
-#include "math/vec2d.hpp"
-#include "shapes/shape.hpp"
 #include <cstdio>
 
 TEST_CASE("distance constraints moves items as expected", "[file]")
diff --git a/test/draw_order_test.cpp b/test/draw_order_test.cpp
index c02e60a..1515cc0 100644
--- a/test/draw_order_test.cpp
+++ b/test/draw_order_test.cpp
@@ -1,11 +1,11 @@
-#include "catch.hpp"
-#include "core/binary_reader.hpp"
-#include "file.hpp"
+#include <rive/core/binary_reader.hpp>
+#include <rive/file.hpp>
+#include <rive/node.hpp>
+#include <rive/shapes/clipping_shape.hpp>
+#include <rive/shapes/rectangle.hpp>
+#include <rive/shapes/shape.hpp>
 #include "no_op_renderer.hpp"
-#include "node.hpp"
-#include "shapes/clipping_shape.hpp"
-#include "shapes/rectangle.hpp"
-#include "shapes/shape.hpp"
+#include <catch.hpp>
 #include <cstdio>
 
 TEST_CASE("draw rules load and sort correctly", "[draw rules]")
diff --git a/test/file_test.cpp b/test/file_test.cpp
index 3b6bcc4..845e222 100644
--- a/test/file_test.cpp
+++ b/test/file_test.cpp
@@ -1,10 +1,10 @@
-#include "catch.hpp"
-#include "core/binary_reader.hpp"
-#include "file.hpp"
+#include <rive/core/binary_reader.hpp>
+#include <rive/file.hpp>
+#include <rive/node.hpp>
+#include <rive/shapes/rectangle.hpp>
+#include <rive/shapes/shape.hpp>
 #include "no_op_renderer.hpp"
-#include "node.hpp"
-#include "shapes/rectangle.hpp"
-#include "shapes/shape.hpp"
+#include <catch.hpp>
 #include <cstdio>
 
 TEST_CASE("file can be read", "[file]")
diff --git a/test/ik_constraint_test.cpp b/test/ik_constraint_test.cpp
index 4589acd..4e0649b 100644
--- a/test/ik_constraint_test.cpp
+++ b/test/ik_constraint_test.cpp
@@ -1,12 +1,12 @@
+#include <rive/core/binary_reader.hpp>
+#include <rive/file.hpp>
+#include <rive/constraints/ik_constraint.hpp>
+#include <rive/node.hpp>
+#include <rive/math/vec2d.hpp>
+#include <rive/shapes/shape.hpp>
+#include <rive/bones/skin.hpp>
+#include <rive/bones/bone.hpp>
 #include "rive_testing.hpp"
-#include "core/binary_reader.hpp"
-#include "file.hpp"
-#include "constraints/ik_constraint.hpp"
-#include "node.hpp"
-#include "math/vec2d.hpp"
-#include "shapes/shape.hpp"
-#include "bones/skin.hpp"
-#include "bones/bone.hpp"
 #include <cstdio>
 
 TEST_CASE("ik with skinned bones orders correctly", "[file]")
diff --git a/test/ik_test.cpp b/test/ik_test.cpp
index c1e2d3c..2e2f93e 100644
--- a/test/ik_test.cpp
+++ b/test/ik_test.cpp
@@ -1,10 +1,10 @@
-#include "rive_testing.hpp"
-#include "core/binary_reader.hpp"
-#include "file.hpp"
+#include <rive/core/binary_reader.hpp>
+#include <rive/file.hpp>
+#include <rive/node.hpp>
+#include <rive/bones/bone.hpp>
+#include <rive/shapes/shape.hpp>
 #include "no_op_renderer.hpp"
-#include "node.hpp"
-#include "bones/bone.hpp"
-#include "shapes/shape.hpp"
+#include "rive_testing.hpp"
 #include <cstdio>
 
 TEST_CASE("two bone ik places bones correctly", "[file]")
diff --git a/test/instancing_test.cpp b/test/instancing_test.cpp
index 9ca21cd..639f50c 100644
--- a/test/instancing_test.cpp
+++ b/test/instancing_test.cpp
@@ -1,11 +1,11 @@
-#include "catch.hpp"
-#include "core/binary_reader.hpp"
-#include "file.hpp"
+#include <rive/core/binary_reader.hpp>
+#include <rive/file.hpp>
+#include <rive/node.hpp>
+#include <rive/shapes/clipping_shape.hpp>
+#include <rive/shapes/rectangle.hpp>
+#include <rive/shapes/shape.hpp>
 #include "no_op_renderer.hpp"
-#include "node.hpp"
-#include "shapes/clipping_shape.hpp"
-#include "shapes/rectangle.hpp"
-#include "shapes/shape.hpp"
+#include <catch.hpp>
 #include <cstdio>
 
 TEST_CASE("cloning an ellipse works", "[instancing]")
diff --git a/test/linear_animation_instance_test.cpp b/test/linear_animation_instance_test.cpp
index 1f85934..ad368dd 100644
--- a/test/linear_animation_instance_test.cpp
+++ b/test/linear_animation_instance_test.cpp
@@ -1,7 +1,7 @@
-#include "catch.hpp"
-#include "animation/loop.hpp"
-#include "animation/linear_animation.hpp"
-#include "animation/linear_animation_instance.hpp"
+#include <rive/animation/loop.hpp>
+#include <rive/animation/linear_animation.hpp>
+#include <rive/animation/linear_animation_instance.hpp>
+#include <catch.hpp>
 #include <cstdio>
 
 TEST_CASE("LinearAnimationInstance oneShot", "[animation]")
diff --git a/test/main_test.cpp b/test/main_test.cpp
index 614ab0f..37eab93 100644
--- a/test/main_test.cpp
+++ b/test/main_test.cpp
@@ -3,4 +3,4 @@
 
 #define CATCH_CONFIG_MAIN // This tells Catch to provide a main() - only do this
                           // in one cpp file
-#include "catch.hpp"
\ No newline at end of file
+#include <catch.hpp>
\ No newline at end of file
diff --git a/test/metrics_path_test.cpp b/test/metrics_path_test.cpp
index 0d04a29..2da655f 100644
--- a/test/metrics_path_test.cpp
+++ b/test/metrics_path_test.cpp
@@ -1,5 +1,5 @@
-#include "catch.hpp"
-#include "shapes/metrics_path.hpp"
+#include <catch.hpp>
+#include <rive/shapes/metrics_path.hpp>
 
 TEST_CASE("path metrics compute correctly", "[bezier]")
 {
diff --git a/test/no_op_renderer.cpp b/test/no_op_renderer.cpp
index 2ad2bc1..51d91c2 100644
--- a/test/no_op_renderer.cpp
+++ b/test/no_op_renderer.cpp
@@ -1,5 +1,5 @@
 #include "no_op_renderer.hpp"
-#include "renderer.hpp"
+#include <rive/renderer.hpp>
 
 namespace rive
 {
diff --git a/test/no_op_renderer.hpp b/test/no_op_renderer.hpp
index 16ba23e..f1716ac 100644
--- a/test/no_op_renderer.hpp
+++ b/test/no_op_renderer.hpp
@@ -1,6 +1,6 @@
 #ifndef _RIVE_NOOP_RENDERER_HPP_
 #define _RIVE_NOOP_RENDERER_HPP_
-#include "renderer.hpp"
+#include <rive/renderer.hpp>
 #include <vector>
 
 namespace rive
diff --git a/test/node_test.cpp b/test/node_test.cpp
index afbf71d..4a7fb28 100644
--- a/test/node_test.cpp
+++ b/test/node_test.cpp
@@ -1,5 +1,5 @@
-#include "catch.hpp"
-#include "node.hpp"
+#include <catch.hpp>
+#include <rive/node.hpp>
 
 TEST_CASE("Node instances", "[core]") { REQUIRE(rive::Node().x() == 0.0f); }
 
diff --git a/test/path_test.cpp b/test/path_test.cpp
index 73dcca0..eeafd13 100644
--- a/test/path_test.cpp
+++ b/test/path_test.cpp
@@ -1,14 +1,14 @@
-#include "artboard.hpp"
-#include "catch.hpp"
-#include "core/binary_reader.hpp"
-#include "file.hpp"
-#include "math/circle_constant.hpp"
+#include <rive/artboard.hpp>
+#include <rive/core/binary_reader.hpp>
+#include <rive/file.hpp>
+#include <rive/math/circle_constant.hpp>
+#include <rive/node.hpp>
+#include <rive/shapes/ellipse.hpp>
+#include <rive/shapes/path_composer.hpp>
+#include <rive/shapes/rectangle.hpp>
+#include <rive/shapes/shape.hpp>
 #include "no_op_renderer.hpp"
-#include "node.hpp"
-#include "shapes/ellipse.hpp"
-#include "shapes/path_composer.hpp"
-#include "shapes/rectangle.hpp"
-#include "shapes/shape.hpp"
+#include <catch.hpp>
 #include <cstdio>
 
 TEST_CASE("rectangle path builds expected commands", "[path]")
diff --git a/test/reader_test.cpp b/test/reader_test.cpp
index 182db42..e69453d 100644
--- a/test/reader_test.cpp
+++ b/test/reader_test.cpp
@@ -1,5 +1,5 @@
-#include "catch.hpp"
-#include "core/reader.h"
+#include <catch.hpp>
+#include <rive/core/reader.h>
 
 TEST_CASE("uint leb decoder", "[reader]")
 {
diff --git a/test/rive_testing.hpp b/test/rive_testing.hpp
index c617cd6..0b6d8da 100644
--- a/test/rive_testing.hpp
+++ b/test/rive_testing.hpp
@@ -1,9 +1,9 @@
 #ifndef _CATCH_RIVE_TESTING_
 #define _CATCH_RIVE_TESTING_
 
-#include "catch.hpp"
+#include <catch.hpp>
 #include <sstream>
-#include "math/mat2d.hpp"
+#include <rive/math/mat2d.hpp>
 
 bool aboutEqual(const rive::Mat2D& a, const rive::Mat2D& b);
 
diff --git a/test/state_machine_test.cpp b/test/state_machine_test.cpp
index 004d0ce..217f4ee 100644
--- a/test/state_machine_test.cpp
+++ b/test/state_machine_test.cpp
@@ -1,17 +1,17 @@
+#include <rive/core/binary_reader.hpp>
+#include <rive/file.hpp>
+#include <rive/animation/state_machine_bool.hpp>
+#include <rive/animation/state_machine_layer.hpp>
+#include <rive/animation/animation_state.hpp>
+#include <rive/animation/entry_state.hpp>
+#include <rive/animation/state_transition.hpp>
+#include <rive/animation/state_machine_instance.hpp>
+#include <rive/animation/state_machine_input_instance.hpp>
+#include <rive/animation/blend_state_1d.hpp>
+#include <rive/animation/blend_animation_1d.hpp>
+#include <rive/animation/blend_state_direct.hpp>
+#include <rive/animation/blend_state_transition.hpp>
 #include "catch.hpp"
-#include "core/binary_reader.hpp"
-#include "file.hpp"
-#include "animation/state_machine_bool.hpp"
-#include "animation/state_machine_layer.hpp"
-#include "animation/animation_state.hpp"
-#include "animation/entry_state.hpp"
-#include "animation/state_transition.hpp"
-#include "animation/state_machine_instance.hpp"
-#include "animation/state_machine_input_instance.hpp"
-#include "animation/blend_state_1d.hpp"
-#include "animation/blend_animation_1d.hpp"
-#include "animation/blend_state_direct.hpp"
-#include "animation/blend_state_transition.hpp"
 #include <cstdio>
 
 TEST_CASE("file with state machine be read", "[file]")
diff --git a/test/stroke_test.cpp b/test/stroke_test.cpp
index 346d9a9..97627c7 100644
--- a/test/stroke_test.cpp
+++ b/test/stroke_test.cpp
@@ -1,13 +1,13 @@
-#include "catch.hpp"
-#include "core/binary_reader.hpp"
-#include "file.hpp"
+#include <rive/core/binary_reader.hpp>
+#include <rive/file.hpp>
+#include <rive/node.hpp>
+#include <rive/shapes/rectangle.hpp>
+#include <rive/shapes/shape.hpp>
+#include <rive/shapes/paint/stroke.hpp>
+#include <rive/shapes/paint/solid_color.hpp>
+#include <rive/shapes/paint/color.hpp>
 #include "no_op_renderer.hpp"
-#include "node.hpp"
-#include "shapes/rectangle.hpp"
-#include "shapes/shape.hpp"
-#include "shapes/paint/stroke.hpp"
-#include "shapes/paint/solid_color.hpp"
-#include "shapes/paint/color.hpp"
+#include <catch.hpp>
 #include <cstdio>
 
 TEST_CASE("stroke can be looked up at runtime", "[file]")
diff --git a/test/transform_constraint_test.cpp b/test/transform_constraint_test.cpp
index eb077eb..3c5fa7a 100644
--- a/test/transform_constraint_test.cpp
+++ b/test/transform_constraint_test.cpp
@@ -1,10 +1,10 @@
-#include "rive_testing.hpp"
-#include "core/binary_reader.hpp"
-#include "file.hpp"
+#include <rive/core/binary_reader.hpp>
+#include <rive/file.hpp>
+#include <rive/node.hpp>
+#include <rive/bones/bone.hpp>
+#include <rive/shapes/shape.hpp>
 #include "no_op_renderer.hpp"
-#include "node.hpp"
-#include "bones/bone.hpp"
-#include "shapes/shape.hpp"
+#include "rive_testing.hpp"
 #include <cstdio>
 
 TEST_CASE("transform constraint updates world transform", "[file]")