experiment with domains for error handling... commiting for posterity