Refactor the interface