it works \o/ can still optimize the randomization tho