Added actual generation functions
Implemented resetting and randomizing