fleshing out NodeViewModel