System Design From First Principles