Moved progress info one loop outside. This generates way lesser number of emits to client side and is still quite accurate