Improves algorithm running time (hopefully) and adds progress tracking for normalization.