Refactored the interface