A structured approach to problem solving