- add unified frontend configuration record to make adding future options easier - use ExceptT throughout, rather than using runExceptT at internal boundaries