def _add_initial_value(self, data_id, value, initial_dist=0.0,
                           fringe=None, check_cutoff=None, no_call=None):
        nodes, seen, edge_weight = self.nodes, self.seen, self._edge_length
        wf_remove_edge, check_wait_in = self._wf_remove_edge, self.check_wait_in
        wf_add_edge, dsp_in = self._wf_add_edge, self._set_sub_dsp_node_input
        update_view = self._update_meeting
        if fringe is None:
            fringe = self.fringe
        if no_call is None:
            no_call = self.no_call
        check_cutoff = check_cutoff or self.check_cutoff
        if data_id not in nodes:
            return False
        wait_in = nodes[data_id]['wait_inputs']
        index = nodes[data_id]['index']
        wf_add_edge(START, data_id, **value)
        if data_id in self._wildcards:
            self._visited.add(data_id)
            self.workflow.add_node(data_id)
            for w, edge_data in self.dmap[data_id].items():
                wf_add_edge(data_id, w, **value)
                node = nodes[w]
                vw_dist = initial_dist + edge_weight(edge_data, node)
                update_view(w, vw_dist)
                if check_cutoff(vw_dist):
                    wf_remove_edge(data_id, w)
                    continue
                elif node['type'] == 'dispatcher':
                    dsp_in(data_id, w, fringe, check_cutoff, no_call, vw_dist)
                elif check_wait_in(True, w):
                    continue
                seen[w] = vw_dist
                vd = (True, w, self.index + node['index'])
                heapq.heappush(fringe, (vw_dist, vd, (w, self)))
            return True
        update_view(data_id, initial_dist)
        if check_cutoff(initial_dist):
            wf_remove_edge(START, data_id)
        elif not check_wait_in(wait_in, data_id):
            seen[data_id] = initial_dist
            vd = (wait_in, data_id, self.index + index)
            heapq.heappush(fringe, (initial_dist, vd, (data_id, self)))
            return True
        return False