add more flexibility in initializing kinematic solvers