transaction progress counting refactored