more hash implementations