working draft of node module