anchor.diff:           do/7,
            add/1,
            add/2,
  +         add/3,
            remove/1,
            remove/2,
            remove/3,
  
positive.code: %% ------------------------------------------------------------------
  %% callbacks handlers
  %% ------------------------------------------------------------------
  -spec handle_add(non_neg_integer(), state()) -> ok | list({ok, pid()}).
  handle_add(_Count, #state{scenario=undefined}) ->
      lager:error("add users invoked, but no scenario defined");
  handle_add(Count, #state{scenario=Scenario,
                           scenario_state=State,
                           nodes = Nodes,
                           node_id = NodeId}) when
        is_integer(Count), Count > 0 ->
      Last = case ets:last(?TABLE) of
                 '$end_of_table' -> 0;
                 Other -> Other
             end,
      UserIds = node_userids(Last+1, Last+Count, Nodes, NodeId),
      start_users(Scenario, UserIds, State).
  
  -spec handle_remove(non_neg_integer(), amoc:remove_opts(), state()) -> ok.
  handle_remove(_Count, _Opts, #state{scenario=undefined}) ->
  
negative.code: -spec add(node(), non_neg_integer()) -> ok.
  add(Node, Count) ->
      gen_server:cast({?SERVER, Node}, {add, Count}).
  
  -spec add(node(), non_neg_integer(), proplists:proplist()) -> ok.
  add(Node, Count, Opts) ->
      gen_server:cast({?SERVER, Node}, {add, Count, Opts}).
  
  -spec remove(non_neg_integer()) -> ok.
  remove(Count) ->
  