More refactorings: split protocols away