anchor.diff:  
   %% --------------------------------------------------------------------------------------------------------------------
   
  -%% @doc Looks up the given entity by id, and then adds it to our simulation list.
  -%%
  -%% This attempts to look up the entity from pre_data, and then adds it to the simulation list.
  --spec add_entity(EntityID::binary()) ->
  +%% @doc Adds the given entity to our simulation list.
  +%%
  +%% This assumes we are being passed a valid entity record, and adds it to our simulation list.
  +-spec add_entity(Entity::#entity{}) ->
   	ok | {error, Msg::list()}.
   
  -add_entity(EntityID) ->
  -	gen_server:call({add, EntityID}).
  +add_entity(Entity) ->
  +	gen_server:call({add, Entity}).
   
   %% --------------------------------------------------------------------------------------------------------------------
   
  
positive.code: 	State = #state{
  		entities = dict:new()
  	},
  	{ok, State}.
  
  %% --------------------------------------------------------------------------------------------------------------------
  
  handle_call({add, EntityID}, _From, State) ->
  	Entities = State#state.entities,
  	%TODO: look up the entity in pre_data, and replace `some_val`
  	NewState = State#state {
  		entities = dict:append(EntityID, some_val, Entities)
  	},
      {reply, ok, NewState};
  
  handle_call({remove, EntityID}, _From, State) ->
  	Entities = State#state.entities,
  	NewState = State#state {
  		%TODO: Handle exception if EntityID is not found.
  		entities = dict:erase(EntityID, Entities)
  	},
      {reply, ok, NewState};
  
negative.code: 
  code_change(_OldVersion, State, _Extra) ->
  	{reply, State}.
  
  %% --------------------------------------------------------------------------------------------------------------------
  %% Internal API
  %% --------------------------------------------------------------------------------------------------------------------
  
  simulate_entities([], _State) ->
  	ok;
  
  simulate_entities([{EntityID, Entity} | Rest], State) ->
  	% Simulate this entity's behavior.
  	Behavior = Entity#entity.behavior,
  	NewEntity = apply(Behavior, simulate, [{Entity, State}]),
  	dict:store(EntityID, NewEntity, State#state.entities),
  	simulate_entities(Rest, State).
  
  
  send_to_watchers([], _EntityID, _State) ->
  	ok;
  
  send_to_watchers([Watcher | Rest], EntityID, State) ->
  	% Send `{update, EntityID, State}` to Watcher
  	Watcher ! {update, EntityID, State},
  	send_to_watchers(Rest, EntityID, State).
  
  %% --------------------------------------------------------------------------------------------------------------------
  