first version of node class