speaker refactoring