use fail instead of print + return