Refactoring comms client