refactor Percolation API