use hat for random numbers (simpler)
self vs. this style