private void attachPushedMBlocks(Direction dir) {
		int x = 0; int y =0;
		if (dir == Direction.LEFT) x = -1;
		else if (dir == Direction.RIGHT) x = 1;
		else if (dir == Direction.UP)  y = -1;
		else if (dir == Direction.DOWN) y = 1;

		for (MBlock b : mBlocks) {
			Point p = b.location();
			if (gBlock.getAttachedPoints().contains(p) || 
					gBlock.location().equals(p)) {
				if (b.isRemover()) {
					Block r = new Block(b.location().x + x, 
							b.location().y + y);
					gBlock.removePoints(r.getAdjSidesPoints());
				} else {
					gBlock.attachBlock(new Point(b.location().x + x, 
							b.location().y + y));
				}

				if (gBlock.checkShape(shape))
				  shape = new RandomShape(c);
				b.respawn();
			}
		}
	}