implement fail()