Essentials of Mathematical Thinking. (2017)