refactored Interfaces