anchor.diff:              io:format("Status: ~n~p~n", [StatusItem])
       end,
       print_vnode_status(RestStatusItems).
  +
  +print_v2_status(Type, Mod, Partition, StartTS) ->
  +    StartTSStr = datetime_str(StartTS),
  +    Running = timer:now_diff(now(), StartTS),
  +    RunningStr = riak_core_format:human_time_fmt("~.2f", Running),
  +
  +    io:format("transfer type: ~s~n", [Type]),
  +    io:format("vnode type: ~p~n", [Mod]),
  +    io:format("partition: ~p~n", [Partition]),
  +    io:format("started: ~s [~s ago]~n", [StartTSStr, RunningStr]).
  +
  +print_v1_status(Mod, Partition, Node) ->
  +    io:format("vnode type: ~p~n", [Mod]),
  +    io:format("partition: ~p~n", [Partition]),
  +    io:format("target node: ~p~n~n", [Node]).
  +
  +print_stats(SrcNode, TargetNode, no_stats) ->
  +    ToFrom = riak_core_format:fmt("~16s ~s ~16s",
  +                                  [SrcNode, ?ARROW, TargetNode]),
  +    Width = length(ToFrom),
  +
  +    io:format("last update: no updates seen~n"),
  +    io:format("objects transferred: unknown~n~n"),
  +    io:format("~s~n", [string:centre("unknown", Width)]),
  +    io:format("~s~n", [ToFrom]),
  +    io:format("~s~n", [string:centre("unknown", Width)]);
  +print_stats(SrcNode, TargetNode, Stats) ->
  +    ObjsS = proplists:get_value(objs_per_s, Stats),
  +    BytesS = proplists:get_value(bytes_per_s, Stats),
  +    LastUpdate = proplists:get_value(last_update, Stats),
  +    Diff = timer:now_diff(now(), LastUpdate),
  +    DiffStr = riak_core_format:human_time_fmt("~.2f", Diff),
  +    Objs = proplists:get_value(objs_total, Stats),
  +    ObjsSStr = riak_core_format:fmt("~p Objs/s", [ObjsS]),
  +    ByteStr = riak_core_format:human_size_fmt("~.2f", BytesS) ++ "/s",
  +    TS = datetime_str(LastUpdate),
  +    ToFrom = riak_core_format:fmt("~16s ~s ~16s",
  +                                  [SrcNode, ?ARROW, TargetNode]),
  +    Width = length(ToFrom),
  +
  +    io:format("last update: ~s [~s ago]~n", [TS, DiffStr]),
  +    io:format("objects transferred: ~p~n~n", [Objs]),
  +    io:format("~s~n", [string:centre(ObjsSStr, Width)]),
  +    io:format("~s~n", [ToFrom]),
  +    io:format("~s~n", [string:centre(ByteStr, Width)]).
  
positive.code:         _ ->
              io:format("Module ~w not yet loaded, skipped.~n", [Mod])
      end.
  
  format_stats([], Acc) ->
      lists:reverse(Acc);
  
negative.code:          cluster_info/1,
           down/1,
           reload_code/1]).
  
  %% Arrow is 24 chars wide
  -define(ARROW, "=======================>").
  
  
  join([NodeStr]) ->
      try
  