wrapped in an anonymous function, works minified