feature 2: fail function implemented