[#3] add decreasing remaining request counter mechanism; add tests