public TetrisEngine(){
		this.score = 0;
		this.fLines = 0;
		this.toggle = true;
		
		// @todo pull initialization out of constructor and add to variable definitions
		t = new Tetrimino();
		b = new Tetrimino();
		next = new Tetrimino();
		p = new Playfield();
		
		pause = false;
		gameStatus = true;
		
		gui = new TetrisGUI(b,t,next,p, this);
		gui.setTitle("TetriQ");
		gui.setVisible(true);
		gui.addKeyListener(new KeyListener() {
			@Override
		    public void keyPressed(KeyEvent e) {
				//System.out.println("key: "+e.getKeyCode());
		    	switch(e.getKeyCode()){
		    	case 16: toggle();
		    		break;
		    	case 37:moveLeft();
		    		break;
		    	case 38:rotate();
		    		break;
		    	case 39:moveRight();
		    		break;
		    	case 40:moveDown();
		    		break;
		    	case 32:dropDown();
		    		break;
		    	case 80: togglePause();
		 			break;
		    	}
		    }

			@Override
			public void keyReleased(KeyEvent arg0) {}

			@Override
			public void keyTyped(KeyEvent arg0) {}
		});
		
		this.setSpeed(650);
		setTimer(this.getSpeed());
		tetriminoInit();
	}