Index: branches/playability/src/util/track/track.cc
===================================================================
--- branches/playability/src/util/track/track.cc	(revision 10088)
+++ branches/playability/src/util/track/track.cc	(revision 10091)
@@ -26,5 +26,4 @@
 #include "track/track.h"
 
-#include "track/track_manager.h"
 #include "p_node.h"
 
@@ -59,18 +58,10 @@
 void Track::init()
 {
-  // resetting all elements
-  this->firstTrackElem = NULL;
-
-
-  // make a debug track
-  this->firstTrackElem = new TrackElement();
-  this->firstTrackElem->ID = 1;
-  this->firstTrackElem->setName("root");
-
-  this->currentTrackElem = firstTrackElem;
-
   this->curveType = CURVE_BEZIER;
-  this->trackElemCount = 1;
-
+  this->startingTime = 0;
+  this->duration = 10;
+  this->endTime = 1;
+  this->width = 10;
+  this->curve = new BezierCurve();
   this->trackNode = new PNode(PNode::getNullParent(), PNODE_ALL);
 }
@@ -81,6 +72,5 @@
 Track::~Track()
 {
-  if( this->firstTrackElem)
-    delete this->firstTrackElem;
+
 }
 
@@ -117,11 +107,6 @@
 void Track::addPoint(Vector newPoint)
 {
-//   if (this->currentTrackElem->isFresh)
-//     {
-//       this->setCurveType(CURVE_BEZIER, this->currentTrackElem);
-//       this->currentTrackElem->isFresh = false;
-//     }
-//   trackElem->curve->addNode(newPoint);
-//   trackElem->nodeCount++;
+   this->curve->addNode(newPoint);
+   this->nodeCount++;
 }
 
@@ -173,12 +158,12 @@
 }
 
-Vector TrackManager::calcPos() const
-{
-  return this->currentTrackElem->curve->calcPos((this->localTime-this->currentTrackElem->startingTime)/this->currentTrackElem->duration);
-}
-
-Vector TrackManager::calcDir() const
-{
-  return this->currentTrackElem->curve->calcDir((this->localTime - this->currentTrackElem->startingTime)/this->currentTrackElem->duration);
+Vector Track::calcPos() const
+{
+  return this->curve->calcPos((this->localTime-this->startingTime)/this->duration);
+}
+
+Vector Track::calcDir() const
+{
+  return this->curve->calcDir((this->localTime - this->startingTime)/this->duration);
 }
 
@@ -222,5 +207,5 @@
  * @returns the main TrackNode
 */
-PNode* TrackManager::getTrackNode()
+PNode* Track::getTrackNode()
 {
   return this->trackNode;
Index: branches/playability/src/util/track/track.h
===================================================================
--- branches/playability/src/util/track/track.h	(revision 10088)
+++ branches/playability/src/util/track/track.h	(revision 10091)
@@ -12,5 +12,4 @@
 class PNode;
 class TiXmlElement;
-class TrackElement;
 
 class Track : public BaseObject
@@ -23,26 +22,31 @@
    virtual ~Track();
 
-      virtual void loadParams(const TiXmlElement* root);
-      void addPoint(float x, float y, float z);
-      void addPoint(Vector newPoint);
+   virtual void loadParams(const TiXmlElement* root);
+   void addPoint(float x, float y, float z);
+   void addPoint(Vector newPoint);
 
-      void finalize();
-      inline Vector calcPos() const;
-      inline Vector calcDir() const;
-      void tick(float dt);
+   void finalize();
+   inline Vector calcPos() const;
+   inline Vector calcDir() const;
+   void tick(float dt);
 
-      PNode* getTrackNode();
+   PNode* getTrackNode();
+      
+   float                 startingTime;         //!< The time at which this Track begins.
+   float                 duration;             //!< The time used to cross this Track (curve).
+   float                 endTime;              //!< The time at which this Track ends.
+   float                 width;                //!< Th width of the Path. This tells the Player(s), how far he(they) can go to the left/right.
 
-  private:
-    void init();
+   int                   nodeCount;            //!< The count of points this Track has.
+   Curve*                curve;                //!< The Curve of this Track
+
+ private:
+   void init();
 
 
  private:
-      TrackElement*        firstTrackElem;         //!< The first TrackElement that exists.
-      TrackElement*        currentTrackElem;       //!< The TrackElement we are working on.
-      CurveType            curveType;              //!< The CurveType the entire TrackSystem will have.
-      int                  trackElemCount;         //!< The count of TrackElements that exist.
-
-      PNode*               trackNode;              //!< The node that is slave to the Track. This node will be moved while update the Track, and must NOT move itself.
+   CurveType            curveType;              //!< The CurveType the entire TrackSystem will have.
+   float                localTime;              //!< The time that has been passed since the traveling the Track.
+   PNode*               trackNode;              //!< The node that is slave to the Track. This node will be moved while update the Track, and must NOT move itself.
 };
 
