Fixed leaky abstraction in do-fields macro