Critical Thinking for Problem-Solving