first cut at main program