create new node if it doesn't exist