Percolation

merging this as well so we can have good basis of master to start working from..percolation is generic so you can use it with different types of union find backings