improve support for using return via blocks