Wrapping in IIFE to not pollute global scope.  Adding function name to listener function