Reorganizing and adding node.js support