Seperating hash() to init, update & final