string interning pass state through all allocation things decide on state vs global state, terminology globals, getting and setting functions, returning locals, lexical scoping, closures, upvalues lists, hashes, other useful types garbage collector macros