fail safe vs foolproof