void set() throws ScriptException {
		switch (statement[1].tok) {
		case Token.axes:
			setAxes(2);
			break;
		case Token.bondmode:
			setBondmode();
			break;
		case Token.boundbox:
			setBoundbox(2);
			break;
		case Token.color:
		case Token.defaultColors:
			setDefaultColors();
			break;
		case Token.display:// deprecated
		case Token.selectionHalo:
			setSelectionHalo(2);
			break;
		case Token.echo:
			setEcho();
			break;
		case Token.fontsize:
			setFontsize();
			break;
		case Token.hbond:
			setHbond();
			break;
		case Token.history:
			history(2);
			break;
		case Token.monitor:
			setMonitor(2);
			break;
		case Token.property: // huh? why?
			setProperty();
			break;
		case Token.scale3d:
			setScale3d();
			break;
		case Token.strands:
			setStrands();
			break;
		case Token.spin:
			setSpin();
			break;
		case Token.ssbond:
			setSsbond();
			break;
		case Token.unitcell:
			setUnitcell(2);
			break;
		case Token.picking:
			setPicking();
			break;
		case Token.pickingStyle:
			setPickingStyle();
			break;
		case Token.formalCharge:
			viewer.setFormalCharges(intParameter(2));
			break;

		// not implemented
		case Token.backfade:
		case Token.cartoon:
		case Token.hourglass:
		case Token.kinemage:
		case Token.menus:
		case Token.mouse:
		case Token.shadow:
		case Token.slabmode:
		case Token.transparent:
		case Token.vectps:
		case Token.write:
			// fall through to identifier

		case Token.ambient:
		case Token.bonds:
		case Token.debugscript:
		case Token.diffuse:
		case Token.frank:
		case Token.help:
		case Token.hetero:
		case Token.hydrogen:
		case Token.identifier:
		case Token.radius:
		case Token.solvent:
		case Token.specular:
		case Token.specpower:
			String str = (String) statement[1].value;
			if (str.toLowerCase().indexOf("label") == 0) {
				setLabel(str.substring(5));
				break;
			}
			if (str.equalsIgnoreCase("toggleLabel")) {
				viewer.togglePickingLabel(expression(statement, 2));
				break;
			}
			if (str.equalsIgnoreCase("measurementNumbers")) {
				setMonitor(2);
				break;
			}
			if (str.equalsIgnoreCase("historyLevel")) {
				commandHistoryLevelMax = intParameter(2);
				break;
			}
			if (str.equalsIgnoreCase("defaultLattice")) {
				if (statementLength < 3)
					badArgumentCount();
				Point3f pt;
				if (statement[2].tok == Token.integer) {
					int i = statement[2].intValue;
					pt = new Point3f(i, i, i);
				}
				else {
					pt = getCoordinate(2, false);
				}
				viewer.setDefaultLattice(pt);
				break;
			}
			if (str.equalsIgnoreCase("dipoleScale")) {
				checkLength3();
				float scale = floatParameter(2);
				if (scale < -10 || scale > 10)
					numberOutOfRange(-10f, 10f);
				viewer.setFloatProperty("dipoleScale", scale);
				break;
			}
			if (str.equalsIgnoreCase("logLevel")) {
				// set logLevel n
				// we have 5 levels 0 - 4 debug -- error
				// n = 0 -- no messages -- turn all off
				// n = 1 add level 4, error
				// n = 2 add level 3, warn
				// etc.

				int ilevel = intParameter(2);
				Viewer.setLogLevel(ilevel);
				Logger.info("logging level set to " + ilevel);
				break;
			}
			if (statementLength == 2) {
				viewer.setBooleanProperty((String) statement[1].value, booleanParameter(2));
				break;
			}
			checkLength3();
			int tok = statement[2].tok;
			if (tok == Token.decimal) {
				viewer.setFloatProperty((String) statement[1].value, ((Float) statement[2].value).floatValue());
				break;
			}
			if (tok == Token.integer) {
				viewer.setIntProperty((String) statement[1].value, statement[2].intValue);
				break;
			}
			if (tok != Token.on && tok != Token.off && statement[2].value instanceof String) {
				viewer.setStringProperty((String) statement[1].value, (String) statement[2].value);
				break;
			}
			viewer.setBooleanProperty((String) statement[1].value, booleanParameter(2));
			break;
		default:
			unrecognizedSetParameter();
		}
	}