would it be easier if this raised errors in the case of an error, as opposed to dicts?