/// <summary>
        /// Connect to the Server in the Bookmark using the UserInfo from the
        /// bookmark as well.
        /// </summary>
        /// <param name="bookmark">The info about Server and
        /// UserInformation.</param>
        public void Connect(Bookmark bookmark)
        {
            commandSocket = new SecureSocket();
            commands = new Commands(commandSocket);
            lagHandler = new LagHandler();

            try {
                if (bookmark != null) {
                    commandSocket.MessageReceived += messages.MessageReceived;

                    commandSocket.Connect(bookmark.Server);
                    commands.Hello(bookmark.Server.MachineName, bookmark.Server.ServerPort, bookmark.Server.ServerName);
                    mCurrentBookmark = bookmark;

                    messages.PingReplyEvent += lagHandler.OnPingReceived;
                    commands.PingSentEvent += lagHandler.OnPingSent;
                } else {
                    //TODO: Handle error
                    Debug.WriteLine("CONNECTIONMANAGER -> Connect: Trying to connect to a null bookmark.");
                }
            } catch (ConnectionException ce) {
                ce.Bookmark = bookmark;
                throw (ce);
            }
        }
 /// <summary>Constructor</summary>
 /// <param name="model"></param>
 public ControllerBase(SharpWiredModel model)
 {
     this.model = model;
     commands = model.ConnectionManager.Commands;
     messages = model.ConnectionManager.Messages;
 }