implementation percolation