communication refactoring