public void go(){
		// interpolation = true;
		if (interpolation) {
			// moveto
			float normTime = (float) (System.currentTimeMillis() - starttime)
					/ (float) duration;
			x = (int) (startx + ((float) (destx - startx) * normTime));
			y = (int) (starty + ((float) (desty - starty) * normTime));
			// rotate
			angle = (double) (startAngle + ((float) (endAngle - startAngle) * normTime));

			size = (double) (startSize + ((double) (endSize - startSize) * normTime));

			// interpolation logic
			if ((System.currentTimeMillis() - starttime) >= duration) {

				interpolation = false;
				x = destx;
				y = desty;
				angle = endAngle;
				size = endSize;
			}
			// split
			pic.translateTo(x, y); // moveto
			pic.rotateTo(angle); // rotate
			pic.scaleTo(size);

		} else if (scan.hasNext()) {

			instruction = scan.next();

			switch (instruction) {

			case "COMMAND":

				// interpolation = false;
				x = scan.nextDouble();
				y = scan.nextDouble();
				angle = scan.nextDouble();
				size = scan.nextDouble();
				duration = scan.nextDouble();
				move(x, y, duration);
				rotate(angle, duration);
				scale(size, duration);

				break;
				
			case "//":
				 
				scan.nextLine();
				
				break;
				
			case "HIDE":
				  
				  pic.hide();
				  
				  break;
				  
			case "SHOW":
				 
				  pic.show();
				 
				  break;

			default:

				System.out.println("Invalid Token." + instruction);
				// interpolation = true;

				break;
			}

		}

	}