Comprehending Problem Solving: Building Mathematical Understanding with Cognition and Language