Theoretical Foundations of Design Thinking