Add dynamic rate limiting