That sounds fine, we need to be a bit careful though, as the properties set by `set_details` should only be set once, and at the same time, (so that when the error gets passed down the chain they aren't overwritten) so if somebody put some of the details in the constructor, then tried to call `set_details`...