private boolean gotoNextValidMatrixCell() {
			do {
				dz++;
				if(dz > 2) {
					dz = 0; dy++;
				}
				if(dy > 2) {
					dy = 0; dx++;
				}
				if(dx > 2) {
					return false; // we have visited all neighboring matrix cells
				}
			} while(ox + dx < 0 || oy + dy < 0 || oz + dz < 0 ||	
					ox + dx >= numX || oy + dy >= numY || oz + dz >= numZ);
			iterator = list[ox + dx][oy + dy][oz + dz].iterator(); // get new iterator
			return true;
		}