anchor.diff:      ?equals(api_tx:write(Key, Initial), {ok}),
       prop_add_on_nr2(Key, true, Initial, ToAdd).
   
  --spec prop_add_on_nr2(Key::client_key(), Existing::boolean(), Initial::client_value(), ToAdd::client_value()) -> true | no_return().
  -prop_add_on_nr2(Key, Existing, Initial, ToAdd) ->
  -    if (not erlang:is_number(Initial)) orelse
  -           (not erlang:is_number(ToAdd)) ->
  -           ?equals(api_tx:add_on_nr(Key, ToAdd), {fail, not_a_number});
  -       true ->
  -           ?equals(api_tx:add_on_nr(Key, ToAdd), {ok}),
  -           {ok, Number} = api_tx:read(Key),
  -           case Existing of
  -               false -> ?equals(Number, ToAdd);
  -               % note: Initial+ToAdd could be float when Initial is not and thus Number is neither
  -               true when ToAdd == 0 -> ?equals(Number, Initial);
  -               _     -> ?equals(Number, (Initial + ToAdd))
  -           end
  -    end.
  -
   tester_add_on_nr(_Config) ->
       tester:test(?MODULE, prop_add_on_nr, 3, 10000).
   
  
positive.code:            ?equals(api_tx:read(Key), {ok, RealOldValue})
      end.
  
  tester_test_and_set(_Config) ->
      tester:test(?MODULE, prop_test_and_set, 4, 10000).
  
negative.code: 
  tester_add_on_nr_maybe_invalid(_Config) ->
      tester:test(?MODULE, prop_add_on_nr_maybe_invalid, 3, 10000).
  
  -spec prop_test_and_set2(Key::client_key(), Existing::boolean(), RealOldValue::client_value(), OldValue::client_value(), NewValue::client_value()) -> true | no_return().
  prop_test_and_set2(Key, Existing, RealOldValue, OldValue, NewValue) ->
  