always return a BetterStruct object, don't raise a NoMethodError