implement reservoid sampleing