Design Principals for Intelligent Environments