add throttle fn