added back in the random generator