first cut of the functionality