added signalR client code