the catch failed when binding code is moved to the end. the signal function should be a binder.