- Replaced shared RNG with thread local
- Replaced default shared counter approach with result return