use no-recur instead of in-try