diff --git a/src/01-bezierCurves/Curve.ts b/src/01-bezierCurves/Curve.ts
index 028a93f73199ee0de427b3bdce7f381f586b5f49..98d0bd3ddd03e9112e5782b310e06610804576e9 100644
--- a/src/01-bezierCurves/Curve.ts
+++ b/src/01-bezierCurves/Curve.ts
@@ -31,10 +31,10 @@ class Curve extends Line2d implements PipelineObserver {
         this._offset = parameter.offset;
 
         this.positions = [
-            parameter.pointA.position(),
-            parameter.tangentA.position(),
-            parameter.tangentB.position(),
-            parameter.pointB.position(),
+            parameter.pointA._object3d.position,
+            parameter.tangentA._object3d.position,
+            parameter.tangentB._object3d.position,
+            parameter.pointB._object3d.position,
         ];        
 
         this._generator = new CubicBezierCurve(this.positions, new DeCasteljauAlgorithm());
diff --git a/src/01-bezierCurves/CurveHelper.ts b/src/01-bezierCurves/CurveHelper.ts
index d88a83a1c3216c3a6c217520a8d67de99d910c6f..eff3e68dd968fcaf0e4ab7e55cc0bfb45f4a15c9 100644
--- a/src/01-bezierCurves/CurveHelper.ts
+++ b/src/01-bezierCurves/CurveHelper.ts
@@ -173,7 +173,7 @@ class CurveHelperBernstein implements PipelineObserver, PipelineRenderable, Pipe
         for (let i = 0; i < 4; i++) {
             this._point.push(new Point2d(.02, 32, new THREE.Color(0x0000ff)));
             this._point[i].material = material;
-            this._point[i].position().copy(new THREE.Vector3(this._helperReference.t, coefficient[i], 0.001));
+            this._point[i]._object3d.position.copy(new THREE.Vector3(this._helperReference.t, coefficient[i], 0.001));
         }
     }
 
@@ -192,7 +192,7 @@ class CurveHelperBernstein implements PipelineObserver, PipelineRenderable, Pipe
     update(_deltaTime: number): void {
         const coefficient = BernsteinAlgorithm.calculateCoefficients(this._helperReference.t);
         for (let i = 0; i < 4; i++) {
-            this._point[i].position().copy(new THREE.Vector3(this._helperReference.t, coefficient[i], 0.001)
+            this._point[i]._object3d.position.copy(new THREE.Vector3(this._helperReference.t, coefficient[i], 0.001)
                 .sub(new THREE.Vector3((this._scale * .5), (this._scale * .5), 0)));
         }
     }
diff --git a/src/01-bezierCurves/DemoBezier.ts b/src/01-bezierCurves/DemoBezier.ts
index 284c8297dd0e02da2e87f02a54db34ae1b479935..f4f8cb656150d39ea199a57e766f72b65db6c08d 100644
--- a/src/01-bezierCurves/DemoBezier.ts
+++ b/src/01-bezierCurves/DemoBezier.ts
@@ -46,8 +46,8 @@ class BezierDemo extends PipelineData {
         this.addObserver(curveHelper);
         this.addObserver(curveHelperBernstein);
 
-        this.addGUI(curve);
-        this.addGUI(curveHelper);
+        this.addGUIElement(curve);
+        this.addGUIElement(curveHelper);
 
         this.addRenderable(pointA);
         this.addRenderable(tangentA);
diff --git a/src/02-quaternion/Axes.ts b/src/02-quaternion/Axes.ts
index a174f99cfe496a98bb2080311b9a293886395109..c31a11d51d9e2c0b811c0b4b82d230f9f4555335 100644
--- a/src/02-quaternion/Axes.ts
+++ b/src/02-quaternion/Axes.ts
@@ -17,16 +17,15 @@ class Axes implements PipelineRenderable {
         this._objects.add(this.y.object());
         this._objects.add(this.z.object());
         const offset = 0.001;
-        this.x.position().z = offset;
-        this.y.position().z = offset;
-        this.z.position().z = offset;
+        this.x._object3d.position.z = offset;
+        this.y._object3d.position.z = offset;
+        this.z._object3d.position.z = offset;
     }
+    
     object(): THREE.Object3D {
         return this._objects;
     }
-    position(): THREE.Vector3 {
-        return this._objects.position;
-    }
+
 }
 
 export { Axes };
\ No newline at end of file
diff --git a/src/02-quaternion/DemoQuaternion.ts b/src/02-quaternion/DemoQuaternion.ts
index 4119b83854ff9ba97f079fe25561b996aaadc701..6751a7af8a54a9b8e3d40da8dfd8f0c49cc07089 100644
--- a/src/02-quaternion/DemoQuaternion.ts
+++ b/src/02-quaternion/DemoQuaternion.ts
@@ -29,7 +29,7 @@ class QuaternionDemo extends PipelineData {
 
         const rotator: Rotator = new Rotator(rotationObject.object());
         this.addObserver(rotator);
-        this.addGUI(rotator);
+        this.addGUIElement(rotator);
 
         const rotationHelper = new RotationHelper(rotator, new THREE.Color(0xffffff), new THREE.Color(0xff0000));
         this.addRenderable(rotationHelper);
diff --git a/src/core/Shapes.ts b/src/core/Shapes.ts
index 230e017cbc0f6a67a3bbdb870d471261f241e955..f55fdc124fe1938066d95b3056ee3c4c9dfc0e24 100644
--- a/src/core/Shapes.ts
+++ b/src/core/Shapes.ts
@@ -50,10 +50,6 @@ abstract class Shape implements PipelineRenderable {
     public object(): THREE.Object3D {
         return this._object3d!;
     }
-
-    public position(): THREE.Vector3 {
-        return this._object3d.position;
-    }
 }
 
 class DebugHelper implements PipelineObserver {