add rescue function