2. you can declare them "static", which means they don't have a static link and cannot access the enclosing function's variables
3. if garbage collection is enabled, you can pass a pointer to the function out of the enclosing function's scope and still safely access its variables