private void execute(Node form) {

		Node result = null;
		// missing tail recursion
		if (form.getLeft() == null) {
			return;
		}
		// System.out.println("LFT:"+form.getLeft()+" Type:"+form.getLeft().getType());
		switch (form.getLeft().getType()) {

		case CAR:
			result = car(form.getRight().getLeft());
			break;
		case CDR:
			result = cdr(form.getRight().getLeft());
			break;
		case SYMBOL:
			result = doSymbol(form);
			break;
		case NULL:
			result = nullCheck(form);
			break;
		case PLUS:
			result = plus(form.getRight());
			break;
		case MINUS:
			result = minus(form.getRight());
			break;
		case STAR:
			result = multiply(form.getRight());
			break;
		case DIVIDE:
			result = divide(form.getRight());
			break;		default:
			System.out.println("Default for "+form.getLeft().getType());
			result = form;
		}
		prt.print(result);
	}