The five building blocks for a problem-solving heuristic: