adding Node abstraction
adding Node abstraction