replaced by node.coffee and frame.coffee