first cut frontend and schema