public void update ()
	{
		timestep++;
		if(timestep >= threshold)
		{
			prevMove = currMove;
			currMove = nextMove;

			nextMove = currCell.getMove();

			if(move(nextMove, currCell))
			{				
				nextCell = grid.get(x, y); //nextCell.status = Cell.NEXT;
			}
			else 
			{
				nextCell = currCell; //nextCell.status = Cell.NEXT;
			}

			if(prevCell != null && currCell != null)
			{
				algorithm.update(prevCell, currCell, nextCell, prevMove, currMove, nextMove);
			}
			
			currCell.interact(this);
			prevCell = currCell;
			currCell = nextCell;
			timestep = 0;
		}
	}