reverted to use solve_inefficiently