Models of Thinking