Before refactoring interface
Refactored and cleaned up some interfaces.