public void begin() {
    //		System.out.println(ResourceManager.getWorkingDirectory());
    // Set up the core to listen to the CCWSC and the Document Manager
    if (connector != null || documentManager != null) end();
    connector = new CCWebSocketConnector();
    documentManager = new DocumentManager();

    ResourceManager.getFileMetadata();
    connector.addResponseNotificationListener(this);
    documentManager.addDocumentChangedListener(this);

    // get data from preferences
    Storage.getInstance()
        .setUsername(
            Activator.getDefault()
                .getPreferenceStore()
                .getString(
                    PreferenceConstants
                        .P_USERNAME)); // set("Username",Activator.getDefault().getPreferenceStore().getString(PreferenceConstants.P_USERNAME));
    Storage.getInstance()
        .setPassword(
            Activator.getDefault()
                .getPreferenceStore()
                .getString(
                    PreferenceConstants
                        .P_PASSWORD)); // set("Password",Activator.getDefault().getPreferenceStore().getString(PreferenceConstants.P_PASSWORD));

    // TODO get data from metadata files
    // ResourceManager.getFileMetadata();

    connector.connect();
    sleep(1000);
    connector.login();
    sleep(1000);
    // documentManager.getActiveDocument();
    connector.fetchProjects();
    sleep(2000);
    // documentManager.generateDocumentsForProjects(); // generate document listeners
    connector.subscribe(documentManager.getActiveProjectId()); // change to current project
    documentManager.listen();
    sleep(1000);
    connector.pullDocument(documentManager.getActiveFileId());
    //        UIManager.showInfoDialog("Dank Title", "Insert Dank Memes Here");
    //    	Storage.getInstance().getUsers().add("jello");
    //    	Storage.getInstance().firePropertyChange("users", Storage.getInstance().getUsers(),
    // Storage.getInstance().getUsers());
  }