refactored nodes and interfaces