add generateAll method