anchor.diff:               {stop, Reason :: term(), NewState :: #state{}}).
   handle_call({get}, _From, State) ->
       do_get_users(State);
  +handle_call({create, User}, _From, State) ->
  +  do_create_user(State, User);
  +handle_call({update, User}, _From, State) ->
  +  do_update_user(State, User);
  +handle_call({delete, User}, _From, State) ->
  +  do_delete_user(State, User);
   handle_call({check, Email, Password}, _From, State) ->
       do_check_user(State, Email, Password);
   handle_call(_Request, _From, State) ->
  
positive.code: get() ->
      gen_server:call(?SERVER, {get}).
  
  
  -spec(check(Email :: string(), Password :: string()) -> {ok, Rec :: #user{}} | {error, string()}).
  check(Email, Password) ->
  
negative.code:              {stop, Reason :: term()} | ignore).
  init([]) ->
      em_logger:info("Init users manager"),
      Cache = ets:new(users, [set, private, {keypos, 2}]),
      {ok, Users} = em_storage:get_users(),
      lists:foreach(fun(User) ->
                      %%em_logger:info("Loading user ~s", [User#user.name]),
                      ets:insert(Cache, User)
                    end, Users),
      em_logger:info("Loaded ~w user(s)", [length(ets:tab2list(Cache))]),
      {ok, #state{cache = Cache}}.
  
  