General Problem Solving Techniques