anchor.diff:  handle_info(_Info,State) ->
   	{ok, State}.
   
  +terminate(remove_handler, {_, This, Event, Listener}=_State) ->
  +	Listeners = This:get_hidden_value("_listeners"),
  +	EventListeners = Listeners:get_value(Event),
  +	lists:foldl(fun (L,I) ->
  +						case L:equals(Listener) of
  +							true ->
  +								EventListeners:delete(I), 
  +								I;
  +							false ->
  +								I+1
  +						end
  +				end, 0, EventListeners:list()),
  +	ok;
  +
   terminate(_Args, _State) ->
       ok.
   
  
positive.code: 	?assertEqual(undefined,Root:get_value("value")),
  	erlv8:stop().
  
  listeners_test() ->
  	erlv8:start(),
  	{ok, VM} = erlv8_vm:start(),
  	erlv8_vm:register(VM,'require',beamjs_mod_require),
  
negative.code:     Global = erlv8_vm:global(VM),
      L1 = Global:get_value("l1"),
      L2 = Global:get_value("l2"),
  	?assertEqual(2,Listeners:length()),
  	ListenersList = Listeners:list(),
  	?assert(L1:equals(lists:nth(1,ListenersList))),
  	?assert(L2:equals(lists:nth(2,ListenersList))),
  	Listeners:delete(0),
  	erlv8_vm:run(VM,"emitter.emit('event');"),
  	listeners_manual_removal_test_loop(false),
  	erlv8:stop().
  
  listeners_manual_removal_test_loop(F) ->
  	receive 
  		2 ->
  			listeners_manual_removal_test_loop(true);
  		1 ->
  			error({bad_result, 1});
  		Other ->
  