Change all null checks
Instead of using IllegalArgumentExceptions for null, we should use NullPointerExceptions. In addition, we should use the Objects.requireNonNull(object, "Exception").
https://docs.oracle.com/javase/8/docs/api/java/util/Objects.html#requireNonNull-T-java.lang.String-