don't inject fns into callers scope; isolate it a bit