an excellent resource for explaining how closures work in JavaScript: “JavaScript Closures” by Jim Jey