improved pipe:fail: method