End is now an Exception again, which fixes unit tests. May want to revisit this at some point, and have collect catch control throwables, not just exceptions.