signalr communication refactor