refactor IdWorker