- refactored communication to separate class