diff --git a/examples/src/main/java/spark/mllib/examples/JavaLR.java b/examples/src/main/java/spark/mllib/examples/JavaLR.java
index e11f4830a8d2ca4983150f68717c955daae67483..bf4aeaf40f63e411a39353b0e49a3d9aeffd3904 100644
--- a/examples/src/main/java/spark/mllib/examples/JavaLR.java
+++ b/examples/src/main/java/spark/mllib/examples/JavaLR.java
@@ -37,7 +37,7 @@ public class JavaLR {
   static class ParsePoint extends Function<String, LabeledPoint> {
     public LabeledPoint call(String line) {
       String[] parts = line.split(",");
-      Double y = Double.parseDouble(parts[0]);
+      double y = Double.parseDouble(parts[0]);
       StringTokenizer tok = new StringTokenizer(parts[1], " ");
       int numTokens = tok.countTokens();
       double[] x = new double[numTokens];
diff --git a/mllib/src/main/scala/spark/mllib/optimization/GradientDescent.scala b/mllib/src/main/scala/spark/mllib/optimization/GradientDescent.scala
index 54793ca74dd5682b4cd031aa32a30f4caa565f2d..1f04398d0ccc15e78ac791cf13455521d13d13ba 100644
--- a/mllib/src/main/scala/spark/mllib/optimization/GradientDescent.scala
+++ b/mllib/src/main/scala/spark/mllib/optimization/GradientDescent.scala
@@ -24,7 +24,7 @@ import org.jblas.DoubleMatrix
 
 import scala.collection.mutable.ArrayBuffer
 
-class GradientDescent(gradient: Gradient, updater: Updater) extends Optimizer {
+class GradientDescent(var gradient: Gradient, var updater: Updater) extends Optimizer {
 
   var stepSize: Double = 1.0
   var numIterations: Int = 100
@@ -63,6 +63,23 @@ class GradientDescent(gradient: Gradient, updater: Updater) extends Optimizer {
     this
   }
 
+  /**
+   * Set the gradient function to be used for SGD.
+   */
+  def setGradient(gradient: Gradient): this.type = {
+    this.gradient = gradient
+    this
+  }
+
+
+  /**
+   * Set the updater function to be used for SGD.
+   */
+  def setUpdater(updater: Updater): this.type = {
+    this.updater = updater
+    this
+  }
+
   def optimize(data: RDD[(Double, Array[Double])], initialWeights: Array[Double])
     : Array[Double] = {
 
diff --git a/mllib/src/main/scala/spark/mllib/regression/LabeledPoint.scala b/mllib/src/main/scala/spark/mllib/regression/LabeledPoint.scala
index 592f0b54143dc60afe4e44a29af8cfa5211e5d8d..3de60482c54cf75bbba7241c90c8c5041826cbc0 100644
--- a/mllib/src/main/scala/spark/mllib/regression/LabeledPoint.scala
+++ b/mllib/src/main/scala/spark/mllib/regression/LabeledPoint.scala
@@ -23,10 +23,4 @@ package spark.mllib.regression
  * @param label Label for this data point.
  * @param features List of features for this data point.
  */
-case class LabeledPoint(val label: Double, val features: Array[Double]) {
-
-  /**
-   * Construct a labeled point using java.lang.Double.
-   */
-  def this(label: java.lang.Double, features: Array[Double]) = this(label.doubleValue(), features)
-}
+case class LabeledPoint(val label: Double, val features: Array[Double])