Implementing everything but Percolation#open, which of course is the hard part.