Make progress callback optional