anchor.diff:      AssetsDir = assets_dir(),
       filelib:ensure_dir(AssetsDir),
       {ok, Files} = file:list_dir(AssetsDir),
  -    ModulesToBeMerged = [read_metadata(AssetsDir ++ "/" ++ F) || F <- Files ],
  -    {ok, ModulesToBeMerged}.
  +    Modules = lists:foldl(fun(F, ModulesIn) ->
  +        Read = read_metadata(AssetsDir ++ "/" ++ F),
  +        case lists:keyfind(Read#module.full_name, 2, ModulesIn) of
  +            false -> 
  +                [Read|ModulesIn];
  +            MatchedModule -> 
  +                NewReleases = Read#module.releases,
  +                NewModule = MatchedModule#module{ releases = NewReleases ++ MatchedModule#module.releases},
  +                lists:keyreplace(Read#module.full_name, 2, ModulesIn, NewModule)
  +        end
  +    end, [], Files),
  +    {ok, Modules}.
   
   
   read_metadata(File) ->
  
positive.code: %% priv
  find_release([], Modules, Dict) ->
      Dict;
  find_release([[FullName, Version] = Current|Others], Modules, Dict) ->
      Dict2 = case dict:is_key(FullName, Dict) of 
          false -> dict:store(FullName, sets:new(), Dict);
          _ -> Dict
  
negative.code:         full_name = ?FULL_NAME(Author, Name),
          desc = element(2, lists:keyfind(<<"description">>, 1, Decoded)),
          project_url = element(2, lists:keyfind(<<"project_page">>, 1, Decoded)),
          releases = [#release{version=Version, file=FileName, dependencies=Dependencies}],
          tag_list = [] % TODO: not in metadata, should be added to the post request. or /cares.
      }.
  
  