Comprehending Problem Solving (Building Mathematical Understanding with Cognition and Language)