prototype based on node.js