anchor.diff:      Priority = proplists:get_value(priority, Args, ?VRRP_PRIORITY_DEFAULT),
       Interval = proplists:get_value(interval, Args, ?VRRP_ADVERT_INTERVAL_DEFAULT),
       Preempt = proplists:get_value(preempt, Args, true),
  +    Module = proplists:get_value(module, Args, undef),
       case set_family(IPs) of
           {error, mixed} ->
               {stop, "Mix of protected addresses"};
  
positive.code:     erlang:link(InterfacePid),
      State#state{interface_pid = InterfacePid, our_ip = IPInt}.
  
  become_master(#state{family = ipv4} = State) ->
      io:format("Becoming Master for ID ~p~n", [State#state.id]),
      %% Send gratuitous arp
      %% send_advert
      send_advert(State);
  become_master(#state{family = ipv6} = State) ->
      io:format("Becoming Master for ID ~p~n", [State#state.id]),
      %% Send unsolicited ND
      %% Start adver_timer
      start_timer(adver_timer, State).
  
  become_backup(#state{family = ipv4} = State) ->
      %% Remove MAC from tables
      %% Start master_down_timer
      start_timer(master_down_timer, State).
  
  send_advert(State) ->
  
negative.code: %% @spec terminate(Reason, StateName, State) -> void()
  %% @end
  %%--------------------------------------------------------------------
  terminate(_Reason, 'MASTER', #state{module = undef} = State) ->
      %% Resign, then shutdown..
      send_advert(State#state{priority = 0}),
      vrrp_interface_manager:remove(State#state.interface, State#state.id),
      ok;
  terminate(_Reason, 'MASTER', #state{family = Family, id = Id, vip = VIPs, module = Module} = State) ->
      %% Resign, become slave, then shutdown..
      send_advert(State#state{priority = 0}),
      Module:become_slave(Family, Id, VIPs),
      vrrp_interface_manager:remove(State#state.interface, State#state.id),
      ok;
  terminate(_Reason, _Statename, State) ->
  