use lexical scoping