GlobalFunctions: use a closure instead of polluting global namespace