Rewrite field fallbacks again with a nicer API.