diff --git a/lib/c3/0.1/gl/dvec2.facts b/lib/c3/0.1/gl/dvec2.facts
new file mode 100644
index 0000000..a45e5f3
--- /dev/null
+++ b/lib/c3/0.1/gl/dvec2.facts
@@ -0,0 +1,5 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+replace {GL.Dvec2, :is_a, :module}
+replace {GL.Dvec2, :defstruct, [x: (F64) 0,
+ y: (F64) 0]}
diff --git a/lib/c3/0.1/gl/dvec3.facts b/lib/c3/0.1/gl/dvec3.facts
new file mode 100644
index 0000000..981ae52
--- /dev/null
+++ b/lib/c3/0.1/gl/dvec3.facts
@@ -0,0 +1,6 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+replace {GL.Dvec3, :is_a, :module}
+replace {GL.Dvec3, :defstruct, [x: (F64) 0,
+ y: (F64) 0,
+ z: (F64) 0]}
diff --git a/lib/c3/0.1/gl/point2d.facts b/lib/c3/0.1/gl/point2d.facts
deleted file mode 100644
index fa21d72..0000000
--- a/lib/c3/0.1/gl/point2d.facts
+++ /dev/null
@@ -1,5 +0,0 @@
-%{module: C3.Facts.Dump,
- version: 1}
-replace {GL.Point2D, :is_a, :module}
-replace {GL.Point2D, :defstruct, [x: (F64) 0,
- y: (F64) 0]}
diff --git a/lib/c3/0.1/gl/point2f.facts b/lib/c3/0.1/gl/point2f.facts
deleted file mode 100644
index 378769c..0000000
--- a/lib/c3/0.1/gl/point2f.facts
+++ /dev/null
@@ -1,5 +0,0 @@
-%{module: C3.Facts.Dump,
- version: 1}
-replace {GL.Point2f, :is_a, :module}
-replace {GL.Point2f, :defstruct, [x: (F32) 0,
- y: (F32) 0]}
diff --git a/lib/c3/0.1/gl/point3d.facts b/lib/c3/0.1/gl/point3d.facts
deleted file mode 100644
index f5e9867..0000000
--- a/lib/c3/0.1/gl/point3d.facts
+++ /dev/null
@@ -1,6 +0,0 @@
-%{module: C3.Facts.Dump,
- version: 1}
-replace {GL.Point3D, :is_a, :module}
-replace {GL.Point3D, :defstruct, [x: (F64) 0,
- y: (F64) 0,
- z: (F64) 0]}
diff --git a/lib/c3/0.1/gl/point3f.facts b/lib/c3/0.1/gl/point3f.facts
deleted file mode 100644
index d41a846..0000000
--- a/lib/c3/0.1/gl/point3f.facts
+++ /dev/null
@@ -1,6 +0,0 @@
-%{module: C3.Facts.Dump,
- version: 1}
-replace {GL.Point3f, :is_a, :module}
-replace {GL.Point3f, :defstruct, [x: (F32) 0,
- y: (F32) 0,
- z: (F32) 0]}
diff --git a/lib/c3/0.1/gl/vec2.facts b/lib/c3/0.1/gl/vec2.facts
new file mode 100644
index 0000000..97f3576
--- /dev/null
+++ b/lib/c3/0.1/gl/vec2.facts
@@ -0,0 +1,5 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+replace {GL.Vec2, :is_a, :module}
+replace {GL.Vec2, :defstruct, [x: (F32) 0,
+ y: (F32) 0]}
diff --git a/lib/c3/0.1/gl/vec3.facts b/lib/c3/0.1/gl/vec3.facts
new file mode 100644
index 0000000..2c5f514
--- /dev/null
+++ b/lib/c3/0.1/gl/vec3.facts
@@ -0,0 +1,6 @@
+%{module: C3.Facts.Dump,
+ version: 1}
+replace {GL.Vec3, :is_a, :module}
+replace {GL.Vec3, :defstruct, [x: (F32) 0,
+ y: (F32) 0,
+ z: (F32) 0]}
diff --git a/lib/c3/0.1/gl/vertex.facts b/lib/c3/0.1/gl/vertex.facts
index af1e468..b76260f 100644
--- a/lib/c3/0.1/gl/vertex.facts
+++ b/lib/c3/0.1/gl/vertex.facts
@@ -1,6 +1,6 @@
%{module: C3.Facts.Dump,
version: 1}
replace {GL.Vertex, :is_a, :module}
-replace {GL.Vertex, :defstruct, [position: %GL.Point3f{},
- normal: %GL.Point3f{},
- tex_coord: %GL.Point2f{}]}
+replace {GL.Vertex, :defstruct, [position: %GL.Vec3{},
+ normal: %GL.Vec3{},
+ tex_coord: %GL.Vec2{}]}
diff --git a/lib/c3/0.1/s16.facts b/lib/c3/0.1/s16.facts
index 2a202d1..8d41dc0 100644
--- a/lib/c3/0.1/s16.facts
+++ b/lib/c3/0.1/s16.facts
@@ -2,4 +2,4 @@
version: 1}
replace {S16, :is_a, :module}
replace {S16, :symbol, S16.cast}
-replace {S16.cast, :cfn, cfn S16 "s16_cast" (Tag, Result)}
+replace {S16.cast, :cfn, cfn S16 "s16_init_cast" (Result, Tag)}
diff --git a/lib/c3/0.1/s32.facts b/lib/c3/0.1/s32.facts
index fcbce6e..6b7e7fb 100644
--- a/lib/c3/0.1/s32.facts
+++ b/lib/c3/0.1/s32.facts
@@ -2,4 +2,4 @@
version: 1}
replace {S32, :is_a, :module}
replace {S32, :symbol, S32.cast}
-replace {S32.cast, :cfn, cfn S32 "s32_cast" (Tag, Result)}
+replace {S32.cast, :cfn, cfn S32 "s32_init_cast" (Result, Tag)}
diff --git a/lib/c3/0.1/s64.facts b/lib/c3/0.1/s64.facts
index 0e39a05..e970571 100644
--- a/lib/c3/0.1/s64.facts
+++ b/lib/c3/0.1/s64.facts
@@ -2,4 +2,4 @@
version: 1}
replace {S64, :is_a, :module}
replace {S64, :symbol, S64.cast}
-replace {S64.cast, :cfn, cfn S64 "s64_cast" (Tag, Result)}
+replace {S64.cast, :cfn, cfn S64 "s64_init_cast" (Result, Tag)}
diff --git a/lib/c3/0.1/s8.facts b/lib/c3/0.1/s8.facts
index 746d7ff..8b61a03 100644
--- a/lib/c3/0.1/s8.facts
+++ b/lib/c3/0.1/s8.facts
@@ -2,4 +2,4 @@
version: 1}
replace {S8, :is_a, :module}
replace {S8, :symbol, S8.cast}
-replace {S8.cast, :cfn, cfn S8 "s8_cast" (Tag, Result)}
+replace {S8.cast, :cfn, cfn S8 "s8_init_cast" (Result, Tag)}
diff --git a/lib/c3/0.1/sw.facts b/lib/c3/0.1/sw.facts
index f9ec974..87dcc64 100644
--- a/lib/c3/0.1/sw.facts
+++ b/lib/c3/0.1/sw.facts
@@ -2,4 +2,4 @@
version: 1}
replace {Sw, :is_a, :module}
replace {Sw, :symbol, Sw.cast}
-replace {Sw.cast, :cfn, cfn Sw "sw_cast" (Tag, Result)}
+replace {Sw.cast, :cfn, cfn Sw "sw_init_cast" (Result, Tag)}