This is related to #106.
Right now, we're handling different approaches to instantiating a class via exceptions - passing them down to each new attempt in order to better show what went wrong and what was attempted.
Although this is a good first approach (it works), I would like us to re-think this approach, potentially using strategies with results instead of exceptions.