diff --git a/etc/doxygen/pages/3.howto b/etc/doxygen/pages/3.howto
new file mode 100644
index 0000000000000000000000000000000000000000..95622dcd89b67c212deb3ff84dd46782aced1d87
--- /dev/null
+++ b/etc/doxygen/pages/3.howto
@@ -0,0 +1,22 @@
+/**
+\page robotapi-howtos HowTos
+
+\subpage robotapi-howtos-eigen-from-pose
+
+\page robotapi-howtos-eigen-from-pose How to convert a Variant pose into an Eigen Matrix
+
+\code
+#include <RobotAPI/libraries/robotstate/remote/ArmarPose.h>
+#include <VirtualRobot/LinkedCoordinate.h>
+#include <Eigen/Core>
+
+std::string refFrame = "Base";
+FramedPositionPtr position = getInput<FramedPosition>("position");
+FramedOrientationPtr orientation = getInput<FramedOrientation>("orientation");
+
+VirtualRobot::LinkedCoordinate pose = ArmarPose::createLinkedCoordinate(context->remoteRobot, position, orientation);
+
+Eigen::Matrix4f matrix = pose.getInFrame(refFrame);
+
+\endcode
+*/
diff --git a/source/RobotAPI/components/units/HandUnit.cpp b/source/RobotAPI/components/units/HandUnit.cpp
index 853743acb1c0c773a577d58c12849a349772ad9e..d11f1fb8e9f0c324f9e7328082cd4218db81e5d2 100644
--- a/source/RobotAPI/components/units/HandUnit.cpp
+++ b/source/RobotAPI/components/units/HandUnit.cpp
@@ -77,7 +77,6 @@ void HandUnit::onInitComponent()
     for (size_t i=0;i<actors.size();i++)
     {
         EndEffectorActorPtr a = actors[i];
-        ARMARX_WARNING_S << "here is a hack to make the stuff compile - but it will probably crash when run!";
         std::vector<EndEffectorActor::ActorDefinition> ads;// = a->getDefinition();
         for (size_t j=0;j<ads.size();j++)
         {
@@ -91,13 +90,13 @@ void HandUnit::onInitComponent()
 
     const std::vector<std::string> endeffectorPreshapes = robot->getEndEffector(endeffectorName)->getPreshapes();
 
-    preshapeNames = new SingleTypeVariantList(VariantType::String);
+    shapeNames = new SingleTypeVariantList(VariantType::String);
     std::vector<std::string>::const_iterator iter = endeffectorPreshapes.begin();
     while(iter != endeffectorPreshapes.end())
     {
         Variant currentPreshape;
         currentPreshape.setString(*iter);
-        preshapeNames->addVariant(currentPreshape);
+        shapeNames->addVariant(currentPreshape);
         iter++;
     }
 
@@ -125,24 +124,15 @@ void HandUnit::onExitComponent()
 }
 
 
-void HandUnit::open(const Ice::Current& c)
-{
-}
-
-
-void HandUnit::close(const Ice::Current& c)
-{
-}
-
 
-void HandUnit::preshape(const std::string& preshapeName, const Ice::Current& c)
+void HandUnit::shape(const std::string& shapeName, const Ice::Current& c)
 {
 }
 
 
-SingleTypeVariantListBasePtr HandUnit::getPreshapeNames(const Ice::Current& c)
+SingleTypeVariantListBasePtr HandUnit::getShapeNames(const Ice::Current& c)
 {
-    return preshapeNames;
+    return shapeNames;
 }
 
 
@@ -153,10 +143,10 @@ PropertyDefinitionsPtr HandUnit::createPropertyDefinitions()
 }
 
 
-NameValueMap HandUnit::getPreshapeJointValues(const std::string &preshapeName, const Ice::Current &)
+NameValueMap HandUnit::getShapeJointValues(const std::string &shapeName, const Ice::Current &)
 {
     EndEffectorPtr efp = robot->getEndEffector(getProperty<std::string>("EndeffectorName").getValue());
-    RobotConfigPtr rc = efp->getPreshape(preshapeName);
+    RobotConfigPtr rc = efp->getPreshape(shapeName);
     return rc->getRobotNodeJointValueMap();
 }
 
diff --git a/source/RobotAPI/components/units/HandUnit.h b/source/RobotAPI/components/units/HandUnit.h
index 31c5c3729d57bc8b4107910bc599c936d132410a..8fc88cd1f94f72803d1bb50f8aac6fb000635ac5 100644
--- a/source/RobotAPI/components/units/HandUnit.h
+++ b/source/RobotAPI/components/units/HandUnit.h
@@ -114,24 +114,24 @@ namespace armarx
         /**
          * Send command to the hand to open all fingers.
          */
-        virtual void open(const Ice::Current& c = ::Ice::Current());
+        //virtual void open(const Ice::Current& c = ::Ice::Current());
 
         /**
          * Send command to the hand to close all fingers.
          */
-        virtual void close(const Ice::Current& c = ::Ice::Current());
+        //virtual void close(const Ice::Current& c = ::Ice::Current());
 
         /**
-         * Send command to the hand to form a specific preshape position.
+         * Send command to the hand to form a specific shape position. The shapes are defined in the robot.xml file.
          */
-        virtual void preshape(const std::string& preshapeName, const Ice::Current& c = ::Ice::Current());
+        virtual void shape(const std::string& shapeName, const Ice::Current& c = ::Ice::Current());
 
         /**
-         * @return a list of strings for preshape positions which can be used together with HandUnit::preshape().
+         * @return a list of strings for shape positions which can be used together with HandUnit::shape().
          */
-        virtual SingleTypeVariantListBasePtr getPreshapeNames(const Ice::Current& c = ::Ice::Current());
+        virtual SingleTypeVariantListBasePtr getShapeNames(const Ice::Current& c = ::Ice::Current());
 
-        NameValueMap getPreshapeJointValues(const std::string &preshapeName, const Ice::Current & c = ::Ice::Current());
+        NameValueMap getShapeJointValues(const std::string &shapeName, const Ice::Current & c = ::Ice::Current());
 
          void setObjectGrasped(const std::string &objectName, const Ice::Current &);
          void setObjectReleased(const std::string &objectName, const Ice::Current &);
@@ -152,9 +152,9 @@ namespace armarx
          */
         std::string listenerChannelName;
         /**
-         * List containing the names of all valid preshapes.
+         * List containing the names of all valid shapes.
          */
-        SingleTypeVariantListPtr preshapeNames;
+        SingleTypeVariantListPtr shapeNames;
 
         VirtualRobot::RobotPtr robot;
         VirtualRobot::EndEffectorPtr eef;
diff --git a/source/RobotAPI/components/units/HandUnitObserver.cpp b/source/RobotAPI/components/units/HandUnitObserver.cpp
index cdb899d599f314c45bc75c8c8019c8339d6cf668..31c93458e48ec1e4d3c39e4e8281431bf4704cc2 100644
--- a/source/RobotAPI/components/units/HandUnitObserver.cpp
+++ b/source/RobotAPI/components/units/HandUnitObserver.cpp
@@ -12,7 +12,7 @@ using namespace armarx;
 
 void HandUnitObserver::onInitObserver()
 {
-    usingTopic("LeftHandState");
+    /*usingTopic("LeftHandState");
     usingTopic("RightHandState");
 
     offerChannel("leftHand", "Gives information about the state of the left robot hand.");
@@ -34,7 +34,7 @@ void HandUnitObserver::onInitObserver()
     updateChannel("rightHand");
 
     offerConditionCheck("equals", new armarx::ConditionCheckEquals());
-    offerConditionCheck("updated", new armarx::ConditionCheckUpdated());
+    offerConditionCheck("updated", new armarx::ConditionCheckUpdated());*/
 }
 
 
@@ -52,7 +52,7 @@ void HandUnitObserver::onExitObserver()
 }
 
 
-
+/*
 void HandUnitObserver::reportHandClosed(bool isLeftHand, const Ice::Current&)
 {
     if (isLeftHand)
@@ -86,11 +86,12 @@ void HandUnitObserver::reportHandOpened(bool isLeftHand, const Ice::Current&)
         updateChannel("rightHand");
     }
 }
+*/
 
-
-void HandUnitObserver::reportHandPreshaped(bool isLeftHand, const Ice::Current&)
+void HandUnitObserver::reportHandShaped(const std::string &handName, const std::string &shapeName, const Ice::Current&)
 {
-    if (isLeftHand)
+    // todo
+    /*if (isLeftHand)
     {
         setDataField("leftHand", "isOpen", false);
         setDataField("leftHand", "isClosed", false);
@@ -101,14 +102,15 @@ void HandUnitObserver::reportHandPreshaped(bool isLeftHand, const Ice::Current&)
         setDataField("rightHand", "isOpen", false);
         setDataField("rightHand", "isClosed", false);
         updateChannel("rightHand");
-    }
+    }*/
 }
 
 
 
-void HandUnitObserver::reportNewHandShapeName(bool isLeftHand, const std::string& handShapeName, const Ice::Current&)
+void HandUnitObserver::reportNewHandShapeName(const std::string &handName, const std::string& handShapeName, const Ice::Current&)
 {
-    if (isLeftHand)
+    // todo
+    /*if (isLeftHand)
     {
         setDataField("leftHand", "shapeName", handShapeName);
         updateChannel("leftHand");
@@ -117,5 +119,5 @@ void HandUnitObserver::reportNewHandShapeName(bool isLeftHand, const std::string
     {
         setDataField("rightHand", "shapeName", handShapeName);
         updateChannel("rightHand");
-    }
+    }*/
 }
diff --git a/source/RobotAPI/components/units/HandUnitObserver.h b/source/RobotAPI/components/units/HandUnitObserver.h
index 98134d4fd2dd18b180eafe2405e353f8658aa06b..1ac69c33e61fe04b9bd8daf44dc2f6f957574cd2 100644
--- a/source/RobotAPI/components/units/HandUnitObserver.h
+++ b/source/RobotAPI/components/units/HandUnitObserver.h
@@ -43,6 +43,7 @@ namespace armarx
     };
 
 
+    // TODO !!!
     class HandUnitObserver :
             virtual public Observer,
             virtual public HandUnitListener
@@ -50,8 +51,6 @@ namespace armarx
     public:
         HandUnitObserver(){}
 
-        //void setTopicName(std::string topicName);
-
         // framework hooks
         virtual std::string getDefaultName() const { return "HandUnitObserver"; }
         virtual void onInitObserver();
@@ -59,10 +58,9 @@ namespace armarx
         virtual void onExitObserver();
 
         // observer interface
-        virtual void reportHandClosed(bool isLeftHand, const ::Ice::Current& = ::Ice::Current());
-        virtual void reportHandOpened(bool isLeftHand, const ::Ice::Current& = ::Ice::Current());
-        virtual void reportHandPreshaped(bool isLeftHand, const ::Ice::Current& = ::Ice::Current());
-        virtual void reportNewHandShapeName(bool isLeftHand, const ::std::string& handShapeName, const ::Ice::Current& = ::Ice::Current());
+        // implementation: todo...
+        virtual void reportHandShaped(const std::string &handName, const std::string &shapeName, const ::Ice::Current& = ::Ice::Current());
+        virtual void reportNewHandShapeName(const std::string &handName, const ::std::string& handShapeName, const ::Ice::Current& = ::Ice::Current());
 
         /**
          * @see PropertyUser::createPropertyDefinitions()
diff --git a/source/RobotAPI/components/units/HandUnitSimulation.cpp b/source/RobotAPI/components/units/HandUnitSimulation.cpp
index 01c2dfd4d7195f9c16344e4a2be14088e9e3179a..e46bd2ab944933dbd0c6a0eb32d8b4759bfeea4f 100644
--- a/source/RobotAPI/components/units/HandUnitSimulation.cpp
+++ b/source/RobotAPI/components/units/HandUnitSimulation.cpp
@@ -50,19 +50,8 @@ void HandUnitSimulation::onExitHandUnit()
 
 
 
-void HandUnitSimulation::open(const Ice::Current& c)
-{
-}
-
-
-
-void HandUnitSimulation::close(const Ice::Current& c)
-{
-}
-
-
 
-void HandUnitSimulation::preshape(const std::string& preshapeName, const Ice::Current& c)
+void HandUnitSimulation::setShape(const std::string& shapeName, const Ice::Current& c)
 {
 }
 
diff --git a/source/RobotAPI/components/units/HandUnitSimulation.h b/source/RobotAPI/components/units/HandUnitSimulation.h
index 3ae8f22abd74b97cd6345f91981dc7dae492bd1e..233428a5b58bf148eee16489ddf4dd310fb4a1ca 100644
--- a/source/RobotAPI/components/units/HandUnitSimulation.h
+++ b/source/RobotAPI/components/units/HandUnitSimulation.h
@@ -52,7 +52,7 @@ namespace armarx
      * @brief This class defines an interface for providing high level access to robot hands
      * @ingroup SensorActorUnits
      *
-     * An instance of a HandUnitSimulation provides means to open, close, and preshape hands.
+     * An instance of a HandUnitSimulation provides means to open, close, and shape hands.
      * It uses the HandUnitListener Ice interface to report updates of its current state
      *
      */
@@ -79,20 +79,12 @@ namespace armarx
          */
         virtual void onExitHandUnit();
 
-        /**
-         * Send command to the hand to open all fingers.
-         */
-        virtual void open(const Ice::Current& c = ::Ice::Current());
 
-        /**
-         * Send command to the hand to close all fingers.
-         */
-        virtual void close(const Ice::Current& c = ::Ice::Current());
 
         /**
-         * Send command to the hand to form a specific preshape position.
+         * Send command to the hand to form a specific shape position.
          */
-        virtual void preshape(const std::string& preshapeName, const Ice::Current& c = ::Ice::Current());
+        virtual void setShape(const std::string& shapeName, const Ice::Current& c = ::Ice::Current());
 
 
     protected:
diff --git a/source/RobotAPI/components/units/HapticObserver.h b/source/RobotAPI/components/units/HapticObserver.h
index 71c19b9e9b1172c87601ad2d64c0fc985d0ec0fc..fde75d4eaaf909528c7d081326fc7b80269583d4 100644
--- a/source/RobotAPI/components/units/HapticObserver.h
+++ b/source/RobotAPI/components/units/HapticObserver.h
@@ -41,7 +41,7 @@ namespace armarx
         HapticObserverPropertyDefinitions(std::string prefix):
             ComponentPropertyDefinitions(prefix)
         {
-            defineRequiredProperty<std::string>("HapticTopicName", "Name of the HapticUnit Topic");
+            defineOptionalProperty<std::string>("HapticTopicName", "HapticValues", "Name of the HapticUnit Topic");
         }
     };
 
diff --git a/source/RobotAPI/components/units/HapticUnit.cpp b/source/RobotAPI/components/units/HapticUnit.cpp
index cea65e6336bcf02052273894137db21c4e6df7c8..aef0f4e890a05766782217b1ccdcc5b08caf6437 100644
--- a/source/RobotAPI/components/units/HapticUnit.cpp
+++ b/source/RobotAPI/components/units/HapticUnit.cpp
@@ -27,14 +27,13 @@ using namespace armarx;
 
 void HapticUnit::onInitComponent()
 {
-    listenerName = "HapticValues";
-    offeringTopic(listenerName);
+    offeringTopic(getProperty<std::string>("HapticTopicName").getValue());
     onInitHapticUnit();
 }
 
 void HapticUnit::onConnectComponent()
 {
-    listenerPrx = getTopic<HapticUnitListenerPrx>(listenerName);
+    hapticTopicPrx = getTopic<HapticUnitListenerPrx>(getProperty<std::string>("HapticTopicName").getValue());
     onStartHapticUnit();
 }
 
diff --git a/source/RobotAPI/components/units/HapticUnit.h b/source/RobotAPI/components/units/HapticUnit.h
index 00a1ebb37786f044db87c75a69451d5fbe70ceb0..a018851c99d91cac519548f4d055f4bd39607ffd 100644
--- a/source/RobotAPI/components/units/HapticUnit.h
+++ b/source/RobotAPI/components/units/HapticUnit.h
@@ -41,7 +41,7 @@ namespace armarx
             HapticUnitPropertyDefinitions(std::string prefix) :
                 ComponentPropertyDefinitions(prefix)
             {
-                // No required properties
+                defineOptionalProperty<std::string>("HapticTopicName", "HapticValues", "Name of the Haptic Topic.");
             }
     };
     
@@ -63,8 +63,7 @@ namespace armarx
             virtual PropertyDefinitionsPtr createPropertyDefinitions();
             
         protected:
-            HapticUnitListenerPrx listenerPrx;
-            std::string listenerName;
+            HapticUnitListenerPrx hapticTopicPrx;
     };
 }
 
diff --git a/source/RobotAPI/interface/units/HandUnitInterface.ice b/source/RobotAPI/interface/units/HandUnitInterface.ice
index b223021af082526cbd248a149fce0405783133c4..fe74608186e942cd18d121c96bd4e760345a0b53 100644
--- a/source/RobotAPI/interface/units/HandUnitInterface.ice
+++ b/source/RobotAPI/interface/units/HandUnitInterface.ice
@@ -38,11 +38,11 @@ module armarx
 
     interface HandUnitInterface extends SensorActorUnitInterface
     {
-        void open();
-        void close();
-        void preshape(string preshapeName);
-        SingleTypeVariantListBase getPreshapeNames();
-        NameValueMap getPreshapeJointValues(string preshapeName);
+        void setShape(string shapeName);
+        SingleTypeVariantListBase getShapeNames();
+        NameValueMap getShapeJointValues(string shapeName);
+
+
 
         /*!
          * \brief Inform the hand unit that an object has been successfully grasped.
@@ -60,10 +60,8 @@ module armarx
 
     interface HandUnitListener extends armarx::ObserverInterface
     {
-        void reportHandClosed(bool isLeftHand);
-        void reportHandOpened(bool isLeftHand);
-        void reportHandPreshaped(bool isLeftHand);
-		void reportNewHandShapeName(bool isLeftHand, string handShapeName);
+        void reportHandShaped(string handName, string handShapeName);
+        void reportNewHandShapeName(string handName, string handShapeName);
 
     };
 
diff --git a/source/RobotAPI/interface/units/KinematicUnitInterface.ice b/source/RobotAPI/interface/units/KinematicUnitInterface.ice
index 4c4057da4907c48ec77c86cd7352ad236cb7ce1e..1651057f7b600ec5bea6cc63bf5a6d6eb8a3c439 100644
--- a/source/RobotAPI/interface/units/KinematicUnitInterface.ice
+++ b/source/RobotAPI/interface/units/KinematicUnitInterface.ice
@@ -116,7 +116,7 @@ module armarx
          * Depending on the chosen control mode, one or more of the following functions need to be called
          * to set all necessary parameters.
          * 
-         * The motion starts after all values have been set.
+         * The motion starts immediately.
          */
         void setJointAngles(NameValueMap targetJointAngles) throws OutOfRangeException;
         void setJointVelocities(NameValueMap targetJointVelocities) throws OutOfRangeException;
@@ -142,7 +142,7 @@ module armarx
         void reportJointStatuses(NameStatusMap actualJointStatuses, bool aValueChanged);
     };
     
-    interface KinematicUnitHandInterface extends KinematicUnitInterface
+    /*interface KinematicUnitHandInterface extends KinematicUnitInterface
     {
         void open();
         void close();
@@ -150,14 +150,14 @@ module armarx
 
         void getObjectPoseInHandFrame();
         void getHandPoseInObjectFrame();
-    };
+    };*/
 
-    interface KinematicUnitHandListener
+    /*interface KinematicUnitHandListener
     {
         void reportTactileSensorData(NameValueMap actualTactileSensorData);
         void reportTactileSensorRawData(NameValueMap actualTactileSensorRawData);
         void reportTactileSensorContactData(NameValueMap actualTactileSensorContactData);
-    };
+    };*/
 
 };
 
diff --git a/source/RobotAPI/interface/visualization/DebugDrawerInterface.ice b/source/RobotAPI/interface/visualization/DebugDrawerInterface.ice
index 71917f98f3429a4fdbeaa05598235379f4db6bb7..97863966089d30d2e83433c59852d443cd32b1cc 100644
--- a/source/RobotAPI/interface/visualization/DebugDrawerInterface.ice
+++ b/source/RobotAPI/interface/visualization/DebugDrawerInterface.ice
@@ -31,6 +31,18 @@
 module armarx
 {
 
+    /*!
+     * \brief The Color struct
+     * Values in [0,1]
+     */
+    struct DrawColor
+    {
+         float r;
+         float g;
+         float b;
+    };
+
+
     /*!
       * \brief A layered drawing interface.
       * All drawing operations are identified with a layer name in order to distinguish different drawing entitties.
@@ -45,7 +57,9 @@ module armarx
          * \param poseName The internal name of the pose (can be used to update/disable the drawing).
          * \param globalPose The pose in global coordinate syetem.
          */
-        void setPoseLayerVisu(string layerName, string poseName, PoseBase globalPose);
+        void setPoseVisu(string layerName, string poseName, PoseBase globalPose);
+
+        void setLineVisu(string layerName, string lineName, Vector3Base globalPosition1, Vector3Base globalPosition2, float lineWidth, DrawColor color);
 
         /*!
          * \brief setPoseVisu draws on the "debug" layer
@@ -53,18 +67,21 @@ module armarx
          * \param globalPose
          */
         void setPoseDebugLayerVisu(string poseName, PoseBase globalPose);
+        void setLineDebugLayerVisu(string lineName, Vector3Base globalPosition1, Vector3Base globalPosition2, float lineWidth, DrawColor color);
 
         /*!
          * \brief Remove visualization of coordinate system.
          * \param layerName The name of the drawing layer.
          * \param poseName The name of the pose.
          */
-        void removePoseLayerVisu(string layerName, string poseName);
+        void removePoseVisu(string layerName, string poseName);
+        void removeLineVisu(string layerName, string lineName);
 
         /*!
          * \brief Removes pose from the "debug" layer.
          */
         void removePoseDebugLayerVisu(string poseName);
+        void removeLineDebugLayerVisu(string lineName);
 
     };
 
diff --git a/source/RobotAPI/libraries/drivers/WeissHapticSensor/WeissHapticSensorsUnit.cpp b/source/RobotAPI/libraries/drivers/WeissHapticSensor/WeissHapticSensorsUnit.cpp
index ad7fc94e2f76e0d7356f8b2bb47fc25a3aaabccf..22bfeca89b8f7024b1cdefdf758cb2641059b756 100755
--- a/source/RobotAPI/libraries/drivers/WeissHapticSensor/WeissHapticSensorsUnit.cpp
+++ b/source/RobotAPI/libraries/drivers/WeissHapticSensor/WeissHapticSensorsUnit.cpp
@@ -122,7 +122,7 @@ void WeissHapticSensorsUnit::onStartHapticUnit()
 
     for(std::vector<boost::shared_ptr<WeissHapticSensor> >::iterator it = sensors.begin(); it != sensors.end(); ++it)
     {
-        (*it)->setListenerPrx(listenerPrx);
+        (*it)->setListenerPrx(hapticTopicPrx);
         (*it)->startSampling();
     }
 
diff --git a/source/RobotAPI/libraries/drivers/WeissHapticSensor/WeissHapticSensorsUnit.h b/source/RobotAPI/libraries/drivers/WeissHapticSensor/WeissHapticSensorsUnit.h
index 6d0488a8397e1bffeb908d4180874313e781bfe1..b0525db2084c1c28bfc4de1ff370c14b7f35e6bc 100755
--- a/source/RobotAPI/libraries/drivers/WeissHapticSensor/WeissHapticSensorsUnit.h
+++ b/source/RobotAPI/libraries/drivers/WeissHapticSensor/WeissHapticSensorsUnit.h
@@ -15,7 +15,7 @@
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
  *
  * @package    Armar4::units
- * @author     Peter Kaiser <peter dot kaiser at kit dot edu>
+ * @author     Simon Ottenhaus <simon dot ottenhaus at kit dot edu>
  * @date       2014
  * @copyright  http://www.gnu.org/licenses/gpl.txt
  *             GNU General Public License
@@ -39,16 +39,13 @@ namespace armarx
             WeissHapticSensorsUnitPropertyDefinitions(std::string prefix):
                 HapticUnitPropertyDefinitions(prefix)
             {
-                //defineOptionalProperty<int>("FirstPipeID", 1, "Id of the first Linux/Xenomai Pipe to use for data transfer");
-                //defineOptionalProperty<std::string>("PipeBaseName", "rtp", "Base name of pipe devices");
-                //defineOptionalProperty<std::string>("Logfile", "", "Logfile for logging pipe communication");
             }
     };
     
     class WeissHapticSensorsUnit : virtual public HapticUnit
     {
         public:
-            virtual std::string getDefaultName() { return "HapticUnitArmar4"; }
+            virtual std::string getDefaultName() { return "WeissHapticSensorsUnit"; }
             
             virtual void onInitHapticUnit();
             virtual void onStartHapticUnit();
diff --git a/source/RobotAPI/statecharts/motioncontrol/MotionControl.cpp b/source/RobotAPI/statecharts/motioncontrol/MotionControl.cpp
index dcbdd72b4404d9bccf3c68c5b8223a761d44628c..10ec9a97711826ddd828b5b3d060ebb375db2173 100644
--- a/source/RobotAPI/statecharts/motioncontrol/MotionControl.cpp
+++ b/source/RobotAPI/statecharts/motioncontrol/MotionControl.cpp
@@ -852,7 +852,7 @@ void DoPreshape::onEnter()
     ARMARX_INFO << VAROUT(availableJoints);
     if(it != context->handUnits.end())
     {
-        NameValueMap jointValues = it->second->getPreshapeJointValues(getInput<std::string>("preshapeName"));
+        NameValueMap jointValues = it->second->getShapeJointValues(getInput<std::string>("preshapeName"));
         Term jointCondition;
         ARMARX_IMPORTANT << VAROUT(jointValues);
         for (NameValueMap::const_iterator itJ = jointValues.begin(); itJ != jointValues.end(); ++itJ)
@@ -863,7 +863,7 @@ void DoPreshape::onEnter()
             jointCondition = jointCondition && Literal(id, "inrange", Literal::createParameterList((float)(itJ->second - 2.0f/180.0f*M_PI), (float)(itJ->second + 2.0f/180.0f*M_PI)));
         }
         cond = installCondition<EvSuccess>(jointCondition,"joint angles reached");
-        it->second->preshape(getInput<std::string>("preshapeName"));
+        it->second->setShape(getInput<std::string>("preshapeName"));
         action = setTimeoutEvent(5000, createEvent<EvSuccess>());
 
     }
@@ -932,7 +932,7 @@ void DoPrefixPreshapeSet::onEnter()
     std::map<std::string, HandUnitInterfacePrx>::iterator it = context->handUnits.find(handUnitName);
     if(it != context->handUnits.end())
     {
-        setLocal("preshapes", DoPreshape::GetPreshapeSet(SingleTypeVariantListPtr::dynamicCast(it->second->getPreshapeNames()), getInput<std::string>("preshapePrefix")));
+        setLocal("preshapes", DoPreshape::GetPreshapeSet(SingleTypeVariantListPtr::dynamicCast(it->second->getShapeNames()), getInput<std::string>("preshapePrefix")));
     }
     else
     {
diff --git a/source/RobotAPI/statecharts/motioncontrol/MotionControl.h b/source/RobotAPI/statecharts/motioncontrol/MotionControl.h
index 7e22a3d624662bf5b680213399bed6b2078adb2c..27fd999c71705bd04d159ad1dcc5422d954390aa 100644
--- a/source/RobotAPI/statecharts/motioncontrol/MotionControl.h
+++ b/source/RobotAPI/statecharts/motioncontrol/MotionControl.h
@@ -58,6 +58,8 @@ namespace MotionControl
     *   \param targetJointValues the desired joint values
     *   \param targetTolerance tolerance defining how precisely the joint position has to be reached
     *   \param timeoutInMs a timeout after which the attempt to move is aborted
+    * 
+    *   \warning Deprecated, use RobotSkills/statecharts/MotionControlGroup/JointPositionControl instead
     */
     struct MoveJoints : StateTemplate<MoveJoints>
     {
diff --git a/source/RobotAPI/statecharts/placeobject/PlaceObject.cpp b/source/RobotAPI/statecharts/placeobject/PlaceObject.cpp
index ffe624d9dc854d9d57329c4711b06c8b545fda1f..b5429097077bcaec9a0b62661fb241bd64f6f5e9 100644
--- a/source/RobotAPI/statecharts/placeobject/PlaceObject.cpp
+++ b/source/RobotAPI/statecharts/placeobject/PlaceObject.cpp
@@ -166,8 +166,8 @@ namespace armarx
         HandUnitInterfacePrx handUnitPrx = context->getHandUnit("RightHandUnit");
         if (handUnitPrx)
         {
-            ARMARX_INFO << "Sending open hand command" << flush;
-            handUnitPrx->open();
+            ARMARX_INFO << "Sending open hand command TODO...." << flush;
+            //handUnitPrx->open();
             ARMARX_INFO << "TEST: set object released: Vitalis" << flush;
             handUnitPrx->setObjectReleased("Vitalis");
         } else