added progress monitoring - TODO: fix slow perf