Second pass at refactoring interfaces for clarity.