basic node class