argument checking and QueueIdGenerator