refactor rate limit in update.timeline