anchor.diff:    {ok, MessageID}.
   
   msginfo(MessageID, Ukey) ->
  -  gen_server:call(?MODULE, {msginfo, MessageID, Ukey}),
  -  {ok, MessageID}.
  +  {ok, gen_server:call(?MODULE, {msginfo, MessageID, Ukey})}.
  +
  +msgList(date, Ukey, FromTS, ToTS) ->
  +  {ok, gen_server:call(?MODULE, {listbydate, Ukey, FromTS, ToTS})};
  +
  +msgList(numeric, Ukey, FromN, ToN) ->
  +  {ok, gen_server:call(?MODULE, {listbynumeric, Ukey, FromN, ToN})}.
   
   %%%===================================================================
   %%% gen_server callbacks
  
positive.code: -export([start_link/0,
    store/3,
    index/3,
    msginfo/2
  ]).
  
  %% gen_server callbacks
  
negative.code:   {ok, Subject} = qredis:q(["HGET", lists:concat(["datasmart:users:", Ukey, ":inbox:subject"]), MessageID]),
    {ok, From} = qredis:q(["HGET", lists:concat(["datasmart:users:", Ukey, ":inbox:sender"]), MessageID]),
    {ok, IVec} = qredis:q(["HGET", lists:concat(["datasmart:users:", Ukey, ":inbox:ivec"]), MessageID]),
    {ok, Email} = qredis:q(["HGET", lists:concat(["datasmart:users:", Ukey, ":profile"]), "email"]),
    {ok, Timestamp} = qredis:q(["ZSCORE", lists:concat(["datasmart:users:", Ukey, ":inbox:list"]), MessageID]),
  
  %% TODO Fetch Date from the List
    Decompressed = doUncompress(Compressed),
    Encrypted = base64:decode_to_string(Decompressed),
    {ok, Dencrypted} = user_server:dencrypt(Ukey, IVec, Encrypted),
  
    {[
      {messageid, MessageID},
      {from, From},
      {to, Email},
      {date, Timestamp},
      {subject, Subject},
      {body, Dencrypted},
      {meta, jiffy:decode(MetaJson)}
  