wrap the whole thing in a closure

keep 'use strict' out of the global scope.