important problem solving skills