method remove ?(all=true) x = if all then let rm1binding = (fun k v -> if k=x then (Hashtbl.remove current k) else ()) in Hashtbl.iter rm1binding current else (Hashtbl.remove current x)