add IllegalArgumentException to constructor