Is the idea here that we always need a connection listener in case we get disconnected or are not yet connected?  it seems like lines 73 - 77  could be moved into the listener, e.g. , in the constructor?