add IllegalArgumentException to isSingular