suggest to throw \InvalidArgumentException