diff --git a/source/RobotAPI/libraries/RobotStatechartHelpers/PositionControllerHelper.cpp b/source/RobotAPI/libraries/RobotStatechartHelpers/PositionControllerHelper.cpp
index 229077ce661f1c3d49341d1ec296eb2e5b3d5134..15d53995d75eab81a2179c5982e93704fc4be8cc 100644
--- a/source/RobotAPI/libraries/RobotStatechartHelpers/PositionControllerHelper.cpp
+++ b/source/RobotAPI/libraries/RobotStatechartHelpers/PositionControllerHelper.cpp
@@ -1,6 +1,6 @@
 /*
  * This file is part of ArmarX.
- * 
+ *
  * Copyright (C) 2012-2016, High Performance Humanoid Technologies (H2T),
  * Karlsruhe Institute of Technology (KIT), all rights reserved.
  *
@@ -27,16 +27,22 @@
 
 using namespace armarx;
 
-PositionControllerHelper::PositionControllerHelper(const VirtualRobot::RobotNodePtr &tcp, const VelocityControllerHelperPtr &velocityControllerHelper, const Eigen::Matrix4f &target)
+PositionControllerHelper::PositionControllerHelper(const VirtualRobot::RobotNodePtr& tcp, const VelocityControllerHelperPtr& velocityControllerHelper, const Eigen::Matrix4f& target)
     : posController(tcp), velocityControllerHelper(velocityControllerHelper)
 {
     waypoints.push_back(target);
     currentWaypointIndex = 0;
 }
 
+PositionControllerHelper::PositionControllerHelper(const VirtualRobot::RobotNodePtr& tcp, const VelocityControllerHelperPtr& velocityControllerHelper, const std::vector<Eigen::Matrix4f>& waypoints)
+    : posController(tcp), velocityControllerHelper(velocityControllerHelper), waypoints(waypoints)
+{
+    currentWaypointIndex = 0;
+}
+
 void PositionControllerHelper::update()
 {
-    if(!isLastWaypoint() && isTargetNear())
+    if (!isLastWaypoint() && isCurrentTargetNear())
     {
         currentWaypointIndex++;
     }
@@ -44,28 +50,28 @@ void PositionControllerHelper::update()
     velocityControllerHelper->setTargetVelocity(cv);
 }
 
-void PositionControllerHelper::setNewWaypoints(const std::vector<Eigen::Matrix4f> &waypoints)
+void PositionControllerHelper::setNewWaypoints(const std::vector<Eigen::Matrix4f>& waypoints)
 {
     this->waypoints = waypoints;
     currentWaypointIndex = 0;
 }
 
-void PositionControllerHelper::setNewWaypoints(const std::vector<PosePtr> &waypoints)
+void PositionControllerHelper::setNewWaypoints(const std::vector<PosePtr>& waypoints)
 {
     this->waypoints.clear();
-    for(const PosePtr& pose : waypoints)
+    for (const PosePtr& pose : waypoints)
     {
         this->waypoints.push_back(pose->toEigen());
     }
     currentWaypointIndex = 0;
 }
 
-void PositionControllerHelper::addWaypoint(const Eigen::Matrix4f &waypoint)
+void PositionControllerHelper::addWaypoint(const Eigen::Matrix4f& waypoint)
 {
     this->waypoints.push_back(waypoint);
 }
 
-void PositionControllerHelper::setTarget(const Eigen::Matrix4f &target)
+void PositionControllerHelper::setTarget(const Eigen::Matrix4f& target)
 {
     waypoints.clear();
     waypoints.push_back(target);
@@ -82,24 +88,24 @@ float PositionControllerHelper::getOrientationError() const
     return posController.getOrientationError(getCurrentTarget());
 }
 
-bool PositionControllerHelper::isTargetReached() const
+bool PositionControllerHelper::isCurrentTargetReached() const
 {
     return getPositionError() < thresholdPositionReached && getOrientationError() < thresholdOrientationReached;
 }
 
-bool PositionControllerHelper::isTargetNear() const
+bool PositionControllerHelper::isCurrentTargetNear() const
 {
     return getPositionError() < thresholdPositionNear && getOrientationError() < thresholdOrientationNear;
 }
 
 bool PositionControllerHelper::isFinalTargetReached() const
 {
-    return isLastWaypoint() && isTargetReached();
+    return isLastWaypoint() && isCurrentTargetReached();
 }
 
 bool PositionControllerHelper::isFinalTargetNear() const
 {
-    return isLastWaypoint() && isTargetNear();
+    return isLastWaypoint() && isCurrentTargetNear();
 }
 
 bool PositionControllerHelper::isLastWaypoint() const
@@ -107,7 +113,7 @@ bool PositionControllerHelper::isLastWaypoint() const
     return currentWaypointIndex + 1 >= waypoints.size();
 }
 
-const Eigen::Matrix4f &PositionControllerHelper::getCurrentTarget() const
+const Eigen::Matrix4f& PositionControllerHelper::getCurrentTarget() const
 {
     return waypoints.at(currentWaypointIndex);
 }
diff --git a/source/RobotAPI/libraries/RobotStatechartHelpers/PositionControllerHelper.h b/source/RobotAPI/libraries/RobotStatechartHelpers/PositionControllerHelper.h
index cedc9b5405773a6712fa0fc6aed4e099cd3be2ce..915d9d3e3212fba4cdb2b009478f868dcb549040 100644
--- a/source/RobotAPI/libraries/RobotStatechartHelpers/PositionControllerHelper.h
+++ b/source/RobotAPI/libraries/RobotStatechartHelpers/PositionControllerHelper.h
@@ -1,6 +1,6 @@
 /*
  * This file is part of ArmarX.
- * 
+ *
  * Copyright (C) 2012-2016, High Performance Humanoid Technologies (H2T),
  * Karlsruhe Institute of Technology (KIT), all rights reserved.
  *
@@ -43,6 +43,7 @@ namespace armarx
     {
     public:
         PositionControllerHelper(const VirtualRobot::RobotNodePtr& tcp, const VelocityControllerHelperPtr& velocityControllerHelper, const Eigen::Matrix4f& target);
+        PositionControllerHelper(const VirtualRobot::RobotNodePtr& tcp, const VelocityControllerHelperPtr& velocityControllerHelper, const std::vector<Eigen::Matrix4f>& waypoints);
 
         void update();
 
@@ -55,8 +56,8 @@ namespace armarx
 
         float getOrientationError() const;
 
-        bool isTargetReached() const;
-        bool isTargetNear() const;
+        bool isCurrentTargetReached() const;
+        bool isCurrentTargetNear() const;
         bool isFinalTargetReached() const;
         bool isFinalTargetNear() const;