method handle_dir_event _ dirname evlist fname = 
       let fqp = String.concat "/" [dirname;fname] in
         if ((Str.string_match file_regexp fname 0) && not (Str.string_match acl_file_regexp fname 0)) then  
           begin
             (* Filter frontend list based on acl *)
             let acl_fqp = String.concat "." [fqp;"acl"in
             let acl_filter = this#make_filter acl_fqp in
             let slice_list = 
               match acl_filter with
                 | None -> [] (* No ACL *) 
                 | Some(filter) -> List.filter 
                                     (fun fe->Hashtbl.mem filter (fe#get_slice_name ())) 
                                     frontend_lst 
             in 
             let is_event = list_check evlist in
               if (is_event Createthen
                 begin
                   if (is_event Isdirthen
                     begin
                       this#new_dir slice_list fqp this#handle_dir_event
                     end 
                   else
                     (* It's a new script *)
                     begin
                       this#new_script slice_list fqp
                     end
                 end
               else if (is_event Deletethen
                 begin
                   if (is_event Isdirthen
                     begin
                       (*this#rm_watch fqp;*)
                       List.iter (fun frontend->
                                    frontend#rmdir (mk_rel_path fqp)) slice_list
                     end
                   else List.iter (fun frontend ->
                                     frontend#unlink (mk_rel_path fqp)) slice_list
                 end
           end
         else (* regex not matched *)
           fprintf logfd "Rejected weird entry %s\n" fname