private System.Collections.IEnumerator doLogin(LoginServerCall lsc)
    {
        Debug.Log("starting login" + calls.Count);
          		string url = serverUrl+"login/"+lsc.getId()+"/" + lsc.getDeviceType()+"/MSW"+"/" +lsc.getVersion();

        Debug.Log(url);
        WWW www = new WWW(url);
          		yield return www;
          		Debug.Log("after yield");
        try {
        if (www.error == null) {
            online = true;
            //no error occured
            Debug.Log (www.text);
            Response response = Response.DeserializeObject(www.text);
            //login.debug();
            security = response.security;
            login = response.login;
            content = response.content;
            lsc.processCallback(response);
        } else {
            Debug.Log("ERROR: " + www.error);
            setOffline();
            calls.Add(lsc);

        }
          		www.Dispose();
          		www = null;
        } catch (Exception e) {
            Debug.Log("got an exception " + e.Message);
        }
        processing = false;
        Debug.Log("ending login"+ calls.Count);
    }
 public void Login()
 {
     LoginServerCall lsc = new LoginServerCall(id,deviceType, version, Callback);
     calls.Add(lsc);
 }