Interface refactor