Thinking in Domains