Refactored and simplified some interfaces.