Progress class made clearer, erase duplicate functionality, split functions, fix formatting

This addresses issue #9.
out of curiousity, what does %= do?  I've never seen that before