Extract Interfaces for User Interaction Classes The registry and the rederer are classes that are usually injected by users into their own code, having interfaces for them allow users to mock based on the API and not on the concret implementation which avoids a common code smell. This also allows better custom implementations if users so desire.