refactoring, store status and progress in hash