Creating and Implementing an Interface
General Principles of Component Design