anchor.diff:      lists:member(Type, [riak_dt_gcounter, riak_dt_lwwreg, riak_dt_gset]).
   
   %% @doc Execute a series of functions.
  -execute({Module, Function, Args}) ->
  +execute({Module, Function, Args},
  +        #state{partition=Partition, node=Node}) ->
       lager:info("Re-executing: ~p ~p ~p", [Module, Function, Args]),
  -    derflow:thread(Module, Function, Args);
  -execute(Functions) ->
  -    [execute(Function) || Function <- Functions].
  +    [{IndexNode, _Type}] = derflow:generate_preflist(?N,
  +                                                     {Module, Function, Args},
  +                                                     derflow),
  +    case IndexNode of
  +        {Partition, Node} ->
  +            lager:info("Internal thread triggered: ~p", [IndexNode]),
  +            internal_thread(Module, Function, Args);
  +        _ ->
  +            lager:info("Thread triggered: ~p", [IndexNode]),
  +            thread(Module, Function, Args)
  +    end;
  +execute(Functions, State) ->
  +    [execute(Function, State) || Function <- Functions].
   
   %% @doc Declare a new variable.
   internal_declare(Id, Type, #state{variables=Variables}) ->
  
positive.code:     end,
      true = ets:insert(Variables, {Id, Record}),
      {ok, Id}.
  
negative.code:     {noreply, State};
  
  handle_command({thread, Module, Function, Args}, _From, State) ->
      {ok, Pid} = internal_thread(Module, Function, Args),
      {reply, {ok, Pid}, State};
  
  handle_command({wait_needed, Id}, From,
  