public void movePieceDown(){
		ListIterator<Tetromino> iterator = currentPieces.listIterator();
		Tetromino currentPiece;
		
		//test all active pieces for collision
		while(iterator.hasNext()){
			currentPiece = iterator.next();
			if(!board.collision(currentPiece.getFallTet())){
				currentPiece.moveDown();
			} else {
				if (board.offTopBoard(currentPiece)){
					endOfGame = true;
					stop();
					controller.gameEnded(this);
				} else {
					if (!INFINITE_SCROLL) board.placePiece(currentPiece);
					iterator.remove();
				}
			}
		}
		
		//refill active piece list
		while (currentPieces.size() < numActivePieces){
			Tetromino oldPiece = currentPieces.size() != 0 ? currentPieces.get(currentPieces.size()-1) : null;
			Tetromino newPiece = controller.getNextPiece();
			
			
			if (oldPiece != null && oldPiece.getTop() < 0) {
				newPiece.setY(oldPiece.getY());
				newPiece.moveUp(pieceOffSet);
			}
			
			currentPieces.add(newPiece);
		}
		
		fireStateChangeListeners();
	}