diff --git a/chiphunk.cabal b/chiphunk.cabal
--- a/chiphunk.cabal
+++ b/chiphunk.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 6654f10bfcf93a216508e1f3fa7c6a251033427487355ade61c5dea7ad87e255
+-- hash: d58a7de4888db68e4e113b78844f012f2a15a43d346c20e6854277dc186f3f4d
 
 name:           chiphunk
-version:        0.1.0.0
+version:        0.1.0.1
 synopsis:       Haskell bindings for Chipmunk2D physics engine
 description:    Please see the README on GitHub at <https://github.com/CthulhuDen/chiphunk#readme>
 category:       Physics
@@ -50,6 +50,7 @@
     Chipmunk2D-7.0.2/include/chipmunk/cpSpatialIndex.h
     Chipmunk2D-7.0.2/include/chipmunk/cpTransform.h
     Chipmunk2D-7.0.2/include/chipmunk/cpVect.h
+    src/Chiphunk/wrapper.h
 
 flag library-only
   manual: False
diff --git a/src/Chiphunk/wrapper.h b/src/Chiphunk/wrapper.h
new file mode 100644
--- /dev/null
+++ b/src/Chiphunk/wrapper.h
@@ -0,0 +1,71 @@
+#include <chipmunk/chipmunk.h>
+
+void w_cpvslerp(const cpVect v1, const cpVect v2, const cpFloat t, cpVect *out);
+
+void w_cpvslerpconst(const cpVect v1, const cpVect v2, const cpFloat a, cpVect *out);
+
+void w_cpBodyGetPosition(const cpBody *body, cpVect *out);
+
+void w_cpBodyGetCenterOfGravity(const cpBody *body, cpVect *out);
+
+void w_cpBodyGetVelocity(const cpBody *body, cpVect *out);
+
+void w_cpBodyGetForce(const cpBody *body, cpVect *out);
+
+void w_cpBodyGetRotation(const cpBody *body, cpVect *out);
+
+void w_cpBodyLocalToWorld(const cpBody *body, const cpVect point, cpVect *out);
+
+void w_cpBodyWorldToLocal(const cpBody *body, const cpVect point, cpVect *out);
+
+void w_cpBodyGetVelocityAtWorldPoint(const cpBody *body, const cpVect point, cpVect *out);
+
+void w_cpBodyGetVelocityAtLocalPoint(const cpBody *body, const cpVect point, cpVect *out);
+
+void w_cpShapeGetBB(const cpShape *shape, cpBB *out);
+
+void w_cpShapeUpdate(cpShape *shape, cpTransform transform, cpBB *out);
+
+void w_cpShapeGetSurfaceVelocity(const cpShape *shape, cpVect *out);
+
+void w_cpShapeGetFilter(const cpShape *shape, cpShapeFilter *out);
+
+void w_cpShapeCacheBB(cpShape *shape, cpBB *out);
+
+void w_cpCentroidForPoly(const int count, const cpVect *vects, cpVect *out);
+
+cpFloat w_cpBBSegmentQuery(cpBB bb, cpVect a, cpVect b);
+
+cpBool w_cpBBIntersectsSegment(cpBB bb, cpVect a, cpVect b);
+
+void w_cpSpaceGetGravity(cpSpace *space, cpVect *out);
+
+void w_cpPinJointGetAnchorA(const cpConstraint *constraint, cpVect *out);
+
+void w_cpPinJointGetAnchorB(const cpConstraint *constraint, cpVect *out);
+
+void w_cpSlideJointGetAnchorA(const cpConstraint *constraint, cpVect *out);
+
+void w_cpSlideJointGetAnchorB(const cpConstraint *constraint, cpVect *out);
+
+void w_cpPivotJointGetAnchorA(const cpConstraint *constraint, cpVect *out);
+
+void w_cpPivotJointGetAnchorB(const cpConstraint *constraint, cpVect *out);
+
+void w_cpGrooveJointGetGrooveA(const cpConstraint *constraint, cpVect *out);
+
+void w_cpGrooveJointGetGrooveB(const cpConstraint *constraint, cpVect *out);
+
+void w_cpGrooveJointGetAnchorB(const cpConstraint *constraint, cpVect *out);
+
+void w_cpDampedSpringGetAnchorA(const cpConstraint *constraint, cpVect *out);
+
+void w_cpDampedSpringGetAnchorB(const cpConstraint *constraint, cpVect *out);
+
+void w_cpArbiterGetSurfaceVelocity(cpArbiter *arbiter, cpVect *out);
+
+void w_cpArbiterGetNormal(const cpArbiter *arbiter, cpVect *out);
+
+void w_cpArbiterGetPointA(const cpArbiter *arbiter, int i, cpVect *out);
+
+void w_cpArbiterGetPointB(const cpArbiter *arbiter, int i, cpVect *out);
