node struct separated