listen for finish event instead of end (finish is writable, end is readable)