Add generateLeafs, create individual generate methods for readability.