uses more strings everywhere for node_id