anchor.diff:  %% @@see //stdlib/gen_fsm:StateName/2
   %% @private
   %% @todo send EAP-pwd-ID request to peer
  -idle(timeout, #statedata{identifier = Identifier} = StateData)->
  -	{stop, {shutdown, Identifier}, StateData};
  -idle({request, _Address, _Port, #eap_packet{data = Data} = Packet}, StateData) when is_binary(Packet) ->
  -	{next_state, wait_for_id, StateData, ?TIMEOUT}.
  -
  --spec wait_for_id(Event :: timeout | term(), StateData :: #statedata{}) ->
  -	Result :: {next_state, NextStateName :: atom(), NewStateData :: #statedata{}}
  -		| {next_state, NextStateName :: atom(), NewStateData :: #statedata{},
  -		Timeout :: non_neg_integer() | infinity}
  -		| {next_state, NextStateName :: atom(), NewStateData :: #statedata{}, hibernate}
  -		| {stop, Reason :: normal | term(), NewStateData :: #statedata{}}.
  -%% @doc Handle events sent with {@link //stdlib/gen_fsm:send_event/2.
  -%%		gen_fsm:send_event/2} in the <b>wait_for_id</b> state. This state is responsible
  -%%		for sending EAP-PWD-ID request to peer.
  -%% @@see //stdlib/gen_fsm:StateName/2
  -%% @private
  -%%
  -wait_for_id(timeout, #statedata{identifier = Identifier} = StateData)->
  -	{stop, {shutdown, Identifier}, StateData};
  -wait_for_id({request, _Address, _Port, _Packet} , #statedata{identifier = Identifier,
  -		radius_fsm = RadiusFsm} = StateData)->
  +idle(timeout, #statedata{identifier = Identifier, radius_fsm = RadiusFsm } = StateData) ->
   	{ok, Token} = crypto:rand_bytes(4),
   	{ok, HostName} = inet:gethostname(),
   	Body = #eap_pwd_id{group_desc = 19, random_fun = 16#1, prf = 16#1, token = Token,
  
positive.code: 	IDReqHeader = ocs_eap_codec:eap_pwd(Header),
  	IDRequest = <<IDReqHeader/binary, IDReqBody/binary>>,
  	radius:response(RadiusFsm, IDRequest),
  	NewStateData = StateData#statedata{group_desc = <<"19">>, random_func = <<"1">>, prf = <<"1">>,
  		token = Token, prep = <<"0">>},
  	{next_state, wait_for_commit, NewStateData, ?TIMEOUT}.
  
  -spec wait_for_commit(Event :: timeout | term(), StateData :: #statedata{}) ->
  	Result :: {next_state, NextStateName :: atom(), NewStateData :: #statedata{}}
  
negative.code: 	process_flag(trap_exit, true),
  	StateData = #statedata{radius_fsm = RadiusFsm, address = Address,
  			port = Port, identifier = Identifier},
  	{ok, idle, StateData, 0}.
  
  -spec idle(Event :: timeout | term(), StateData :: #statedata{}) ->
  	Result :: {next_state, NextStateName :: atom(), NewStateData :: #statedata{}}
  