Finished all the generation functions