cleaner code, add kinematic