implement adaptive limiter