running completely on node.js