Techniques for problem solving