big refactor, now helpers return dpnodes. identifiers get hooked together in the datapath