closes apache/incubator-predictionio-template-recommender#17
diff --git a/src/main/scala/ALSModel.scala b/src/main/scala/ALSModel.scala
index afec745..6318b5e 100644
--- a/src/main/scala/ALSModel.scala
+++ b/src/main/scala/ALSModel.scala
@@ -5,8 +5,8 @@
 
 import org.example.recommendation.ALSAlgorithmParams
 
-import org.apache.predictionio.controller.IPersistentModel
-import org.apache.predictionio.controller.IPersistentModelLoader
+import org.apache.predictionio.controller.PersistentModel
+import org.apache.predictionio.controller.PersistentModelLoader
 import org.apache.predictionio.data.storage.BiMap
 
 import org.apache.spark.SparkContext
@@ -20,7 +20,7 @@
     val userStringIntMap: BiMap[String, Int],
     val itemStringIntMap: BiMap[String, Int])
   extends MatrixFactorizationModel(rank, userFeatures, productFeatures)
-  with IPersistentModel[ALSAlgorithmParams] {
+  with PersistentModel[ALSAlgorithmParams] {
 
   def save(id: String, params: ALSAlgorithmParams,
     sc: SparkContext): Boolean = {
@@ -48,7 +48,7 @@
 }
 
 object ALSModel
-  extends IPersistentModelLoader[ALSAlgorithmParams, ALSModel] {
+  extends PersistentModelLoader[ALSAlgorithmParams, ALSModel] {
   def apply(id: String, params: ALSAlgorithmParams,
     sc: Option[SparkContext]) = {
     new ALSModel(
diff --git a/src/main/scala/Engine.scala b/src/main/scala/Engine.scala
index 20a5521..bbec828 100644
--- a/src/main/scala/Engine.scala
+++ b/src/main/scala/Engine.scala
@@ -1,6 +1,6 @@
 package org.example.recommendation
 
-import org.apache.predictionio.controller.IEngineFactory
+import org.apache.predictionio.controller.EngineFactory
 import org.apache.predictionio.controller.Engine
 
 case class Query(
@@ -21,7 +21,7 @@
   score: Double
 ) extends Serializable
 
-object RecommendationEngine extends IEngineFactory {
+object RecommendationEngine extends EngineFactory {
   def apply() = {
     new Engine(
       classOf[DataSource],
diff --git a/src/main/scala/Evaluation.scala b/src/main/scala/Evaluation.scala
index e0eebe1..acc85ff 100644
--- a/src/main/scala/Evaluation.scala
+++ b/src/main/scala/Evaluation.scala
@@ -24,12 +24,11 @@
     // If there is no positive results, Precision is undefined. We don't consider this case in the
     // metrics, hence we return None.
     if (positives.size == 0) {
-      return None
+      None
+    } else {
+      val tpCount: Int = p.itemScores.take(k).filter(is => positives(is.item)).size
+      Some(tpCount.toDouble / math.min(k, positives.size))
     }
-
-    val tpCount: Int = p.itemScores.take(k).filter(is => positives(is.item)).size
-
-    Some(tpCount.toDouble / math.min(k, positives.size))
   }
 }