optimized for npm / browserify