U01() is now random(). tried to tidy up the random() func