Tested in Node.js