diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InverseTransformContinuousSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InverseTransformContinuousSampler.java
index b43ad12..2f5c722 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InverseTransformContinuousSampler.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InverseTransformContinuousSampler.java
@@ -42,12 +42,12 @@
  * final RealDistribution dist = new ChiSquaredDistribution(9);
  * // Create the sampler.
  * final ContinuousSampler chiSquareSampler =
- *     new InverseTransformContinuousSampler(RandomSource.create(RandomSource.MT),
- *                                           new ContinuousInverseCumulativeProbabilityFunction() {
- *                                               public double inverseCumulativeProbability(double p) {
- *                                                   return dist.inverseCumulativeProbability(p);
- *                                               }
- *                                           });
+ *     InverseTransformContinuousSampler.of(RandomSource.create(RandomSource.MT),
+ *                                          new ContinuousInverseCumulativeProbabilityFunction() {
+ *                                              public double inverseCumulativeProbability(double p) {
+ *                                                  return dist.inverseCumulativeProbability(p);
+ *                                              }
+ *                                          });
  *
  * // Generate random deviate.
  * double random = chiSquareSampler.sample();
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InverseTransformDiscreteSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InverseTransformDiscreteSampler.java
index 3f5991c..fcf04dc 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InverseTransformDiscreteSampler.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InverseTransformDiscreteSampler.java
@@ -42,12 +42,12 @@
  * final IntegerDistribution dist = new BinomialDistribution(11, 0.56);
  * // Create the sampler.
  * final DiscreteSampler binomialSampler =
- *     new InverseTransformDiscreteSampler(RandomSource.create(RandomSource.MT),
- *                                         new DiscreteInverseCumulativeProbabilityFunction() {
- *                                             public int inverseCumulativeProbability(double p) {
- *                                                 return dist.inverseCumulativeProbability(p);
- *                                             }
- *                                         });
+ *     InverseTransformDiscreteSampler.of(RandomSource.create(RandomSource.MT),
+ *                                        new DiscreteInverseCumulativeProbabilityFunction() {
+ *                                            public int inverseCumulativeProbability(double p) {
+ *                                                return dist.inverseCumulativeProbability(p);
+ *                                            }
+ *                                        });
  *
  * // Generate random deviate.
  * int random = binomialSampler.sample();
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/PoissonSamplerCache.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/PoissonSamplerCache.java
index 184f8d5..a294783 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/PoissonSamplerCache.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/PoissonSamplerCache.java
@@ -144,7 +144,7 @@
      * Creates a new Poisson sampler.
      *
      * <p>The returned sampler will function exactly the
-     * same as {@link PoissonSampler#PoissonSampler(UniformRandomProvider, double)}.
+     * same as {@link PoissonSampler#of(UniformRandomProvider, double)}.
      *
      * @param rng  Generator of uniformly distributed random numbers.
      * @param mean Mean.
