now with randomness!