anchor.diff:  			Dict = P#cdat.dict,
   			lager:info("Traversing folders crashed ~p", [Err])
   	end,
  -	{noreply, P#cdat{dict = Dict}};
  +	case catch traverse_extra_paths(Dict,P#cdat.extra_paths) of
  +		{ok,Dict1} ->
  +			ok; 
  +		Err1 ->
  +			Dict1 = Dict,
  +			io:format("Traversing extra paths crashed ~p~n",[Err1]) 
  +	end,
  +	{noreply, P#cdat{dict = Dict1}};
   handle_info(_X, State) -> 
   	{noreply, State}.
   
  
positive.code: 
  
  
  -record(cdat, {dict,paths = [], dist_dir = [],fswatcher}).
  -define(R2P(Record), butil:rec2prop(Record, record_info(fields, cdat))).
  -define(P2R(Prop), butil:prop2rec(Prop, cdat, #cdat{}, record_info(fields, cdat))).
  	
  handle_call(stop, _, P) ->
  	{stop, shutdown, stopped, P};
  handle_call({reload_module}, _, P) ->
  
negative.code: handle_info({_, {data, Pathbin}},P) ->
  	Paths = [butil:tolist(X) || X <- binary:split(Pathbin,<<"\r\n">>,[global,trim])],
  	{ok,Dict} = traverse_paths(P#cdat.dict,[butil:tolist(X) || X <- Paths, is_valid_path(X)], change_check),
  	case catch traverse_extra_paths(Dict,P#cdat.extra_paths) of 
  		{ok,Dict1} -> 
  			ok; 
  		Err1 -> 
  			Dict1 = Dict,
  			io:format("Traversing extra paths crashed ~p~n",[Err1]) 
  	end,
  	{noreply,P#cdat{dict = Dict1}};
  handle_info({check_changes}, #cdat{fswatcher = undefined} = P) ->
  	case butil:ds_size(P#cdat.dict) of
  		0 ->
  