added percolation part