anchor.diff:          VersionsFromUpstream = lists:flatmap(fun({M}) ->
               AuthorAndModule = muppet_driver:author_and_module(proplists:get_value(<<"full_name">>, M)),
               Releases = proplists:get_value(<<"releases">>, M),
  -            [{UpstreamBaseUrl, {AuthorAndModule, proplists:get_value(<<"version">>, R) }} || {R} <- Releases]
  +            [{UpstreamBaseUrl, {AuthorAndModule, versions:version(proplists:get_value(<<"version">>, R)) }} || {R} <- Releases]
           end, DecodedModules),
           Parent ! {upstream_metadata, Now, UpstreamBaseUrl, VersionsFromUpstream }
       catch 
  -        T:R -> Parent ! {upstream_failed, Now, T, R}
  +        T:R -> Parent ! {upstream_failed, Now, UpstreamBaseUrl, T, R}
       end.
   
   fetch_and_store_tarball(Parent, Now, BaseUrl, AuthorAndModule, Version) ->
  
positive.code:     NewPids = case sets:is_element(Pid, State#state.pids) of
          false -> State#state.pids;
          true ->
              self() ! tick, 
              sets:del_element(Pid, State#state.pids)
      end,
      {noreply, State#state{ pids = NewPids }};
  
negative.code: 
  handle_info(tick, State) ->
      ThisPid = self(),
      {Now, ExpiredUpstreamBaseUrls} = upstream_to_be_refreshed(State),
      Pids = case ExpiredUpstreamBaseUrls of
          [UpstreamBaseUrl| _] -> 
              Pid = spawn_link(fun() -> refresh_upstream(ThisPid, Now, UpstreamBaseUrl) end),
              [Pid];
  