Smart Problem Solving: How Metacognition Helps