we will use Objects#requireNonNull instead of Guava's Preconditions#checkNotNull