anchor.diff:  end_per_suite(_Config) ->
       ok.
   
  -init_per_group(wait_free_group, Config) ->
  -    [{crdt_rsm, wf_crdt_paxos} | Config];
  -init_per_group(_Group, Config) ->
  -    [{crdt_rsm, crdt_paxos} | Config].
  +init_per_group(Group, Config) ->
  +    case lists:member(Group, ?IMPLEMENTATIONS) of
  +        true -> [{crdt_rsm, Group} | Config];
  +        false -> Config
  +    end.
   
   end_per_group(_Group, _Config) ->
       ok.
  
positive.code:     {priv_dir, PrivDir} = lists:keyfind(priv_dir, 1, Config),
      {crdt_rsm, RSM} =
          case lists:keyfind(crdt_rsm, 1, Config) of
              false -> {crdt_rsm, crdt_paxos};
              Any -> Any
          end,
      Size = randoms:rand_uniform(2, 8),
  
      unittest_helper:make_ring(Size, [{config, [
                                          {log_path, PrivDir},
                                          {crdt_rsm, RSM},
                                          {ordered_links, false}]
                                      }]),
  
      ct:pal("Start test with ringsize ~p", [Size]),
      [{stop_ring, true} | Config].
  
  end_per_testcase(_TestCase, _Config) ->
      ok.
  
  crdt_submit_update_command_list(_Config) ->
      %% submit a list of update commands
      Key = randoms:getRandomString(),
  
      Count = randoms:rand_uniform(1, 1000),
      ct:pal("Submitting lists of ~p updates", [Count]),
      UpdateList =
          [fun(ReplicaId, Crdt) ->
  
negative.code: 
      %% do all the writes
      Parallel = randoms:rand_uniform(1, 50),
      Count = ?CMD_PER_TEST div Parallel,
      WriteFun = fun (_) ->
                      ok = gcounter_on_cseq:inc(Key)
                 end,
  