first cut
error handling