add rank_nullspace and structure of path_solver