What does the 'maybe' get you in this situation? You should check for a nil *InstanceUnit, even if the code promises to always return a non-nil pointer. I like the usage of 'maybe' when there is no way to tell whether or not a function will *do* something, but not for a return value.