impl of percolation api. still have to test impl and understand cases for backwash