compatible with browserify