execute, and finish on return regardless of success
rearranging