#3: migrate to node.js; UNFINISHED!