node interface to node abstract

code refactoring