refactoring communication structures