add catch function