first cut at a simple generator