One thing that has come up from testing so far is that the server responses do not include the mode they are for. This would be very useful for determining what should parse the response and would prevent the need to possibly parse the response straight away.
My plan is have a request queue and a response queue and do it that when a response is get from the server it is passed to a method of the Request object (i.e LoginRequest) which will spit out a "proper" response object i.e. LoginResponse or GetFriendsResponse which will then be plopped into the queue to be dealt with at some point.
Does anyone else think a mode entry in the server response would be helpful?