don't allow null for progress