first attempt at a solution to "Programming Assignment 2: Lexical Scoping"