UFCS
changed to distinguish between failures and errors