anchor.diff:  %% functions with data access
   %%
   
  -add_new_user_entry(ID,Pid) ->
  -   tts_data:user_create_new(ID,Pid). 
  +%% add_new_user_entry(ID,Pid) ->
  +%%    tts_data:user_create_new(ID,Pid). 
  +%%
  +add_new_user_entries(IDs,Pid) ->
  +    Entries = [{ID,Pid} || ID <- IDs], 
  +    tts_data:user_insert_mappings(Entries). 
   
   lookup_user(ID) ->
      tts_data:user_get_pid(ID). 
   
  -delete_user(ID) ->
  -    tts_data:user_delete(ID).
  +delete_user_mappings(IDs) ->
  +    tts_data:user_delete_mappings(IDs).
   
  
positive.code: get_user(UserSubject, Issuer) ->
      load_and_return_user(UserSubject, Issuer).
  
  -spec user_wants_to_shutdown(ID :: binary()) -> ok.
  user_wants_to_shutdown(ID) ->
      gen_server:call(?MODULE,{user_wants_to_shutdown,ID}).
  
  %% gen_server.
  
  init([]) ->
  	{ok, #state{}}.
  
  handle_call({create,UserId}, _From, State) ->
      Result = create_new_user(UserId),
      {reply, Result, State};
  handle_call({user_wants_to_shutdown,ID}, _From, State) ->
      {ok,Pid} = lookup_user(ID),
      true = delete_user(ID),
      ok = tts_user:shutdown(Pid),
      {reply, ok, State};
  handle_call(_Request, _From, State) ->
  	{reply, ignored, State}.
  
  handle_cast(_Msg, State) ->
  	{noreply, State}.
  
  
negative.code: 
  create_user(UserId, {ok, UserInfo}) ->
      % TODO: maybe add a way to add multiple representations
      UserIds = maps:get(user_ids,UserInfo,[]),
      NewUserIds = [UserId | UserIds],
      NewUserInfo = maps:put(user_ids,NewUserIds,UserInfo),
      {ok, UserPid} = gen_server:call(?MODULE,{create,NewUserIds}),
      ok = tts_user:set_user_info(NewUserInfo,UserPid),
      {ok, UserPid};
  create_user(_, {error, not_found}) ->
      {error, not_found}.
  
  
  
  create_new_user(UserIdList) ->
      {ok, Pid} = tts_user_sup:add_user(),
      [UserId |_] = UserIdList,
      case add_new_user_entries(UserIdList,Pid) of
          ok -> 
              {ok, Pid};
          {error, already_exists} ->
  