if not (as I guess) throw InvalidArgumentException