add hash iterate