assignment 2 - lexical scoping and closures