fixup! fixup! fixup! fixup! Add ProgressEvent interface