Add cartesian_generate()
Add cartesian_population()
Minor refactor