finding solutions to problems