private PageMolecularViewer createMolecularViewer() {
			PageMolecularViewer mv = (PageMolecularViewer) InstancePool.sharedInstance().getUnusedInstance(
					PageMolecularViewer.class);
			if (uid != null) {
				mv.setUid(uid);
				uid = null;
			}
			jmolConnector.enroll(mv);
			mv.setPage(page);
			mv.reset();
			mv.setIndex(indexOfJmol++);
			mv.setChangable(page.isEditable());
			if (width > 0 && height > 0) {
				if (width > 1 && height > 1) {
					mv.setPreferredSize(new Dimension((int) width, (int) height));
				}
				else {
					// width and height are specified as percentages to the page's size
					if (width < 1.05f) {
						mv.setWidthRelative(true);
						mv.setWidthRatio(width);
						width *= page.getWidth();
					}
					if (height < 1.05f) {
						mv.setHeightRelative(true);
						mv.setHeightRatio(height);
						height *= page.getHeight();
					}
					mv.setPreferredSize(new Dimension((int) width, (int) height));
				}
				width = height = 0;
			}
			if ((argb1 | ARGB_NOT_SET) != ARGB_NOT_SET) {
				mv.setFillMode(new FillMode.ColorFill(new Color(argb1)));
				argb1 = ARGB_NOT_SET;
			}
			mv.setBorderType(borderType);
			borderType = null;
			mv.setResourceAddress(resourceURL);
			resourceURL = null;
			mv.setCustomInitializationScript(script);
			script = null;
			mv.setNavigationMode(navigationMode);
			navigationMode = false;
			if (rotation != null) { // backward compatible
				mv.setRotationAndZoom(rotation);
				rotation = null;
			}
			if (scheme != null) { // backward compatible
				mv.setScheme(scheme);
				scheme = null;
			}
			if (atomColoring >= 0) { // backward compatible
				mv.setAtomColoring(atomColoring);
				atomColoring = -1;
			}
			mv.setSpinOn(spin);
			mv.setDotsEnabled(dots);
			mv.setAxesShown(axes);
			mv.setBoundBoxShown(boundbox);
			spin = dots = axes = boundbox = false;
			mv.enableMenuBar(showMenuBar);
			mv.enableToolBar(showToolBar);
			mv.enableBottomBar(showStatusBar);
			showMenuBar = showToolBar = showStatusBar = true;
			return mv;
		}