how to develop problem solving skills