required some modules, making it support browser & server env.