public void open(SpecificPreferences sp, String url) {
    if (url == null) {
      url = homeUrl;
    }

    specificPreferences = sp;
    initObservers();
    Device defaultDevice =
        commonPreferences.getDevices().get(specificPreferences.getSelectedDeviceId());
    if (defaultDevice == null) {
      System.out.println("Could not find selected device in devices list");
      String id;
      try {
        id = commonPreferences.getDevices().keySet().iterator().next();
      } catch (NoSuchElementException e) {
        commonPreferences = CommonPreferencesStorage.INSTANCE.loadDefault();
        id = commonPreferences.getDevices().keySet().iterator().next();
      }
      specificPreferences.setSelectedDeviceId(id);
      defaultDevice = commonPreferences.getDevices().get(id);
    }

    initSkin(
        BrowserSimUtil.getSkinClass(defaultDevice, specificPreferences.getUseSkins()),
        specificPreferences.getLocation());
    setSelectedDevice(null);
    controlHandler.goToAddress(url);

    instances.add(BrowserSim.this);
    skin.getShell().open();
  }