Thinking in components