added recursive stuff and random-quick