use fail instead of error