Thinking and Learning to Think by