implemented invers kinematics