I haven't had time to look at this in details but my gut feeling is that this is fragile. I'm also curious where the `AttributeError` (and it's `None` fallback) fits into the new paradigm. @akaariai care to comment?