nodeimpl refactoring