new kinematics solver