Refactored some of the Interfaces