refactory: extract SecureIdGenerator