more forgiving on input