The pattern used here is debounce, instead of throttle