XHashMap rewrite