diff --git a/bin/samoa b/bin/samoa
index 0ace74b..1a0ff15 100755
--- a/bin/samoa
+++ b/bin/samoa
@@ -144,7 +144,7 @@
 	# END Reading properties file
 
 	APP_NAME="SamoaS4App"
-	APP_CLASS="com.yahoo.labs.samoa.topology.impl.S4DoTask"
+	APP_CLASS="org.apache.samoa.topology.impl.S4DoTask"
 	NAMED_PARAMETERS=$(perl -MURI::Escape -e 'print uri_escape($ARGV[0]);' "$OPTIONS")
 
 	echo "Deploying SAMOA..."
@@ -199,10 +199,10 @@
 	
 	DEPLOYABLE=$JAR_PATH
 	if [ "$MODE_ARG" = "cluster" ]; then
-		$STORM_EXEC jar $DEPLOYABLE com.yahoo.labs.samoa.topology.impl.StormDoTask $COMPLETE_ARG $NUM_WORKER $MODE_ARG
+		$STORM_EXEC jar $DEPLOYABLE org.apache.samoa.topology.impl.StormDoTask $COMPLETE_ARG $NUM_WORKER $MODE_ARG
 	elif [ "$MODE_ARG" = "local" ]; then
 		CLASSPATH="$CLASSPATH:$STORM_HOME/lib/*:$DEPLOYABLE"
-		java -cp $CLASSPATH com.yahoo.labs.samoa.LocalStormDoTask $COMPLETE_ARG $NUM_WORKER
+		java -cp $CLASSPATH org.apache.samoa.LocalStormDoTask $COMPLETE_ARG $NUM_WORKER
 	fi
 
 elif [ $PLATFORM = 'SAMZA' ]; then
@@ -274,7 +274,7 @@
         done
 
         DEPLOYABLE=$JAR_PATH
-        java -Dsamza.log.dir=$BASE_DIR/logs -Dsamza.container.name=client -cp $DEPLOYABLE com.yahoo.labs.samoa.SamzaDoTask $COMPLETE_ARG --mode=$MODE_ARG \
+        java -Dsamza.log.dir=$BASE_DIR/logs -Dsamza.container.name=client -cp $DEPLOYABLE org.apache.samoa.SamzaDoTask $COMPLETE_ARG --mode=$MODE_ARG \
                --yarn_home=$YARN_HOME/conf --zookeeper=$ZOOKEEPER_HOST:$ZOOKEEPER_PORT --kafka=$KAFKA_BROKER_LIST \
                --jar_package=$JAR_PATH --yarn_am_mem=$YARN_AM_MEMORY --yarn_container_mem=$YARN_CONTAINER_MEMORY \
                --kafka_replication_factor=$KAFKA_REPLICATION_FACTOR --checkpoint_frequency=$CHECKPOINT_FREQUENCY \
@@ -354,7 +354,7 @@
             fi
         done
         
-	java $JAVA_OPTS -cp $JAR_PATH com.yahoo.labs.samoa.LocalThreadsDoTask $COMPLETE_ARG
+	java $JAVA_OPTS -cp $JAR_PATH org.apache.samoa.LocalThreadsDoTask $COMPLETE_ARG
 
 elif [ $PLATFORM = 'LOCAL' ]; then
 
@@ -369,7 +369,7 @@
 	    fi
 	done
 
-	java $JAVA_OPTS -cp $JAR_PATH com.yahoo.labs.samoa.LocalDoTask $COMPLETE_ARG $NUM_WORKER $MODE_ARG
+	java $JAVA_OPTS -cp $JAR_PATH org.apache.samoa.LocalDoTask $COMPLETE_ARG $NUM_WORKER $MODE_ARG
 else
 	echo "Specify a valid platform."
 	echo "Usage: samoa <platform> <jar> <task & options>"
diff --git a/bin/samza-kryo b/bin/samza-kryo
index 2857a40..ee2cad4 100644
--- a/bin/samza-kryo
+++ b/bin/samza-kryo
@@ -1,6 +1,6 @@
-com.yahoo.labs.samoa.learners.classifiers.trees.AttributeContentEvent:com.yahoo.labs.samoa.learners.classifiers.trees.AttributeContentEvent$AttributeCEFullPrecSerializer
-com.yahoo.labs.samoa.learners.classifiers.trees.ComputeContentEvent:com.yahoo.labs.samoa.learners.classifiers.trees.ComputeContentEvent$ComputeCEFullPrecSerializer
-com.yahoo.labs.samoa.moa.classifiers.core.AttributeSplitSuggestion:com.yahoo.labs.samoa.utils.SerializableSerializer
+org.apache.samoa.learners.classifiers.trees.AttributeContentEvent:org.apache.samoa.learners.classifiers.trees.AttributeContentEvent$AttributeCEFullPrecSerializer
+org.apache.samoa.learners.classifiers.trees.ComputeContentEvent:org.apache.samoa.learners.classifiers.trees.ComputeContentEvent$ComputeCEFullPrecSerializer
+org.apache.samoa.moa.classifiers.core.AttributeSplitSuggestion:org.apache.samoa.utils.SerializableSerializer
 
-com.yahoo.labs.samoa.learners.classifiers.rules.common.TargetMean:com.yahoo.labs.samoa.learners.classifiers.rules.common.TargetMean$TargetMeanSerializer
-com.yahoo.labs.samoa.learners.classifiers.rules.common.Perceptron:com.yahoo.labs.samoa.learners.classifiers.rules.common.Perceptron$PerceptronSerializer
+org.apache.samoa.learners.classifiers.rules.common.TargetMean:org.apache.samoa.learners.classifiers.rules.common.TargetMean$TargetMeanSerializer
+org.apache.samoa.learners.classifiers.rules.common.Perceptron:org.apache.samoa.learners.classifiers.rules.common.Perceptron$PerceptronSerializer
diff --git a/pom.xml b/pom.xml
index 819a13c..1599c3f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -31,7 +31,7 @@
     </modules>
     <packaging>pom</packaging>
 
-    <groupId>com.yahoo.labs.samoa</groupId>
+    <groupId>org.apache.samoa</groupId>
     <artifactId>samoa</artifactId>
     <version>0.3.0-SNAPSHOT</version>
 
diff --git a/samoa-api/pom.xml b/samoa-api/pom.xml
index de6a73d..89d1fa2 100644
--- a/samoa-api/pom.xml
+++ b/samoa-api/pom.xml
@@ -31,7 +31,7 @@
 
   <artifactId>samoa-api</artifactId>
   <parent>
-    <groupId>com.yahoo.labs.samoa</groupId>
+    <groupId>org.apache.samoa</groupId>
     <artifactId>samoa</artifactId>
     <version>0.3.0-SNAPSHOT</version>
   </parent>
@@ -62,7 +62,7 @@
     </dependency>
 
     <dependency>
-      <groupId>com.yahoo.labs.samoa</groupId>
+      <groupId>org.apache.samoa</groupId>
       <artifactId>samoa-instances</artifactId>
       <version>${project.version}</version>
     </dependency>
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/core/ContentEvent.java b/samoa-api/src/main/java/org/apache/samoa/core/ContentEvent.java
similarity index 96%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/core/ContentEvent.java
rename to samoa-api/src/main/java/org/apache/samoa/core/ContentEvent.java
index 0d88398..b523f48 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/core/ContentEvent.java
+++ b/samoa-api/src/main/java/org/apache/samoa/core/ContentEvent.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.core;
+package org.apache.samoa.core;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/core/DoubleVector.java b/samoa-api/src/main/java/org/apache/samoa/core/DoubleVector.java
similarity index 98%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/core/DoubleVector.java
rename to samoa-api/src/main/java/org/apache/samoa/core/DoubleVector.java
index 96b6c43..b079cfd 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/core/DoubleVector.java
+++ b/samoa-api/src/main/java/org/apache/samoa/core/DoubleVector.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.core;
+package org.apache.samoa.core;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/core/EntranceProcessor.java b/samoa-api/src/main/java/org/apache/samoa/core/EntranceProcessor.java
similarity index 97%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/core/EntranceProcessor.java
rename to samoa-api/src/main/java/org/apache/samoa/core/EntranceProcessor.java
index 1b0cfb3..d92e19b 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/core/EntranceProcessor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/core/EntranceProcessor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.core;
+package org.apache.samoa.core;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/core/Globals.java b/samoa-api/src/main/java/org/apache/samoa/core/Globals.java
similarity index 97%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/core/Globals.java
rename to samoa-api/src/main/java/org/apache/samoa/core/Globals.java
index c333b8e..6402e73 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/core/Globals.java
+++ b/samoa-api/src/main/java/org/apache/samoa/core/Globals.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.core;
+package org.apache.samoa.core;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/core/Processor.java b/samoa-api/src/main/java/org/apache/samoa/core/Processor.java
similarity index 97%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/core/Processor.java
rename to samoa-api/src/main/java/org/apache/samoa/core/Processor.java
index 4e783bd..abed308 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/core/Processor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/core/Processor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.core;
+package org.apache.samoa.core;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/core/SerializableInstance.java b/samoa-api/src/main/java/org/apache/samoa/core/SerializableInstance.java
similarity index 91%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/core/SerializableInstance.java
rename to samoa-api/src/main/java/org/apache/samoa/core/SerializableInstance.java
index cc888cc..92ef464 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/core/SerializableInstance.java
+++ b/samoa-api/src/main/java/org/apache/samoa/core/SerializableInstance.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.core;
+package org.apache.samoa.core;
 
 /*
  * #%L
@@ -20,8 +20,8 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.instances.DenseInstance;
-import com.yahoo.labs.samoa.instances.Instance;
+import org.apache.samoa.instances.DenseInstance;
+import org.apache.samoa.instances.Instance;
 
 /**
  * License
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/BasicClassificationPerformanceEvaluator.java b/samoa-api/src/main/java/org/apache/samoa/evaluation/BasicClassificationPerformanceEvaluator.java
similarity index 94%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/BasicClassificationPerformanceEvaluator.java
rename to samoa-api/src/main/java/org/apache/samoa/evaluation/BasicClassificationPerformanceEvaluator.java
index 6a03e1d..24abe3e 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/BasicClassificationPerformanceEvaluator.java
+++ b/samoa-api/src/main/java/org/apache/samoa/evaluation/BasicClassificationPerformanceEvaluator.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.evaluation;
+package org.apache.samoa.evaluation;
 
 /*
  * #%L
@@ -20,10 +20,10 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.AbstractMOAObject;
-import com.yahoo.labs.samoa.moa.core.Measurement;
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.instances.Utils;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.Utils;
+import org.apache.samoa.moa.AbstractMOAObject;
+import org.apache.samoa.moa.core.Measurement;
 
 /**
  * Classification evaluator that performs basic incremental evaluation.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/BasicRegressionPerformanceEvaluator.java b/samoa-api/src/main/java/org/apache/samoa/evaluation/BasicRegressionPerformanceEvaluator.java
similarity index 95%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/BasicRegressionPerformanceEvaluator.java
rename to samoa-api/src/main/java/org/apache/samoa/evaluation/BasicRegressionPerformanceEvaluator.java
index 591b1ee..ec48156 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/BasicRegressionPerformanceEvaluator.java
+++ b/samoa-api/src/main/java/org/apache/samoa/evaluation/BasicRegressionPerformanceEvaluator.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.evaluation;
+package org.apache.samoa.evaluation;
 
 /*
  * #%L
@@ -20,9 +20,9 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.moa.AbstractMOAObject;
-import com.yahoo.labs.samoa.moa.core.Measurement;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.moa.AbstractMOAObject;
+import org.apache.samoa.moa.core.Measurement;
 
 /**
  * Regression evaluator that performs basic incremental evaluation.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/ClassificationPerformanceEvaluator.java b/samoa-api/src/main/java/org/apache/samoa/evaluation/ClassificationPerformanceEvaluator.java
similarity index 94%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/ClassificationPerformanceEvaluator.java
rename to samoa-api/src/main/java/org/apache/samoa/evaluation/ClassificationPerformanceEvaluator.java
index 5ce04df..55fc553 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/ClassificationPerformanceEvaluator.java
+++ b/samoa-api/src/main/java/org/apache/samoa/evaluation/ClassificationPerformanceEvaluator.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.evaluation;
+package org.apache.samoa.evaluation;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/ClusteringEvaluationContentEvent.java b/samoa-api/src/main/java/org/apache/samoa/evaluation/ClusteringEvaluationContentEvent.java
similarity index 89%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/ClusteringEvaluationContentEvent.java
rename to samoa-api/src/main/java/org/apache/samoa/evaluation/ClusteringEvaluationContentEvent.java
index b541b2b..67bdeec 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/ClusteringEvaluationContentEvent.java
+++ b/samoa-api/src/main/java/org/apache/samoa/evaluation/ClusteringEvaluationContentEvent.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.evaluation;
+package org.apache.samoa.evaluation;
 
 /*
  * #%L
@@ -19,10 +19,10 @@
  * limitations under the License.
  * #L%
  */
-import com.yahoo.labs.samoa.core.*;
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.moa.cluster.Clustering;
-import com.yahoo.labs.samoa.moa.core.DataPoint;
+import org.apache.samoa.core.*;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.moa.cluster.Clustering;
+import org.apache.samoa.moa.core.DataPoint;
 
 /**
  * License
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/ClusteringEvaluatorProcessor.java b/samoa-api/src/main/java/org/apache/samoa/evaluation/ClusteringEvaluatorProcessor.java
similarity index 93%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/ClusteringEvaluatorProcessor.java
rename to samoa-api/src/main/java/org/apache/samoa/evaluation/ClusteringEvaluatorProcessor.java
index 7841030..6649d81 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/ClusteringEvaluatorProcessor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/evaluation/ClusteringEvaluatorProcessor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.evaluation;
+package org.apache.samoa.evaluation;
 
 /*
  * #%L
@@ -28,21 +28,20 @@
 import java.util.List;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.evaluation.measures.SSQ;
+import org.apache.samoa.evaluation.measures.StatisticalCollection;
+import org.apache.samoa.moa.cluster.Clustering;
+import org.apache.samoa.moa.clusterers.KMeans;
+import org.apache.samoa.moa.core.DataPoint;
+import org.apache.samoa.moa.core.Measurement;
+import org.apache.samoa.moa.evaluation.LearningCurve;
+import org.apache.samoa.moa.evaluation.LearningEvaluation;
+import org.apache.samoa.moa.evaluation.MeasureCollection;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.evaluation.measures.SSQ;
-import com.yahoo.labs.samoa.evaluation.measures.StatisticalCollection;
-import com.yahoo.labs.samoa.moa.cluster.Clustering;
-import com.yahoo.labs.samoa.moa.clusterers.KMeans;
-import com.yahoo.labs.samoa.moa.core.DataPoint;
-import com.yahoo.labs.samoa.moa.core.Measurement;
-import com.yahoo.labs.samoa.moa.evaluation.LearningCurve;
-import com.yahoo.labs.samoa.moa.evaluation.LearningEvaluation;
-import com.yahoo.labs.samoa.moa.evaluation.MeasureCollection;
-
 public class ClusteringEvaluatorProcessor implements Processor {
 
   /**
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/ClusteringResultContentEvent.java b/samoa-api/src/main/java/org/apache/samoa/evaluation/ClusteringResultContentEvent.java
similarity index 92%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/ClusteringResultContentEvent.java
rename to samoa-api/src/main/java/org/apache/samoa/evaluation/ClusteringResultContentEvent.java
index fbb6d3b..5d6494c 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/ClusteringResultContentEvent.java
+++ b/samoa-api/src/main/java/org/apache/samoa/evaluation/ClusteringResultContentEvent.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.evaluation;
+package org.apache.samoa.evaluation;
 
 /*
  * #%L
@@ -20,8 +20,8 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.moa.cluster.Clustering;
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.moa.cluster.Clustering;
 
 /**
  * License
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/EvaluatorProcessor.java b/samoa-api/src/main/java/org/apache/samoa/evaluation/EvaluatorProcessor.java
similarity index 94%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/EvaluatorProcessor.java
rename to samoa-api/src/main/java/org/apache/samoa/evaluation/EvaluatorProcessor.java
index b1748ff..6ec50dc 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/EvaluatorProcessor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/evaluation/EvaluatorProcessor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.evaluation;
+package org.apache.samoa.evaluation;
 
 /*
  * #%L
@@ -29,17 +29,15 @@
 import java.util.Vector;
 import java.util.concurrent.TimeUnit;
 
-import com.yahoo.labs.samoa.moa.core.Measurement;
-import com.yahoo.labs.samoa.moa.evaluation.LearningCurve;
-import com.yahoo.labs.samoa.moa.evaluation.LearningEvaluation;
-
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.learners.ResultContentEvent;
+import org.apache.samoa.moa.core.Measurement;
+import org.apache.samoa.moa.evaluation.LearningCurve;
+import org.apache.samoa.moa.evaluation.LearningEvaluation;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.learners.ResultContentEvent;
-
 public class EvaluatorProcessor implements Processor {
 
   /**
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/PerformanceEvaluator.java b/samoa-api/src/main/java/org/apache/samoa/evaluation/PerformanceEvaluator.java
similarity index 89%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/PerformanceEvaluator.java
rename to samoa-api/src/main/java/org/apache/samoa/evaluation/PerformanceEvaluator.java
index 60c2ffb..0bd2450 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/PerformanceEvaluator.java
+++ b/samoa-api/src/main/java/org/apache/samoa/evaluation/PerformanceEvaluator.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.evaluation;
+package org.apache.samoa.evaluation;
 
 /*
  * #%L
@@ -20,10 +20,9 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.MOAObject;
-import com.yahoo.labs.samoa.moa.core.Measurement;
-
-import com.yahoo.labs.samoa.instances.Instance;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.moa.MOAObject;
+import org.apache.samoa.moa.core.Measurement;
 
 /**
  * Interface implemented by learner evaluators to monitor the results of the learning process.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/RegressionPerformanceEvaluator.java b/samoa-api/src/main/java/org/apache/samoa/evaluation/RegressionPerformanceEvaluator.java
similarity index 94%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/RegressionPerformanceEvaluator.java
rename to samoa-api/src/main/java/org/apache/samoa/evaluation/RegressionPerformanceEvaluator.java
index dc23102..8042fee 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/RegressionPerformanceEvaluator.java
+++ b/samoa-api/src/main/java/org/apache/samoa/evaluation/RegressionPerformanceEvaluator.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.evaluation;
+package org.apache.samoa.evaluation;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/WindowClassificationPerformanceEvaluator.java b/samoa-api/src/main/java/org/apache/samoa/evaluation/WindowClassificationPerformanceEvaluator.java
similarity index 96%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/WindowClassificationPerformanceEvaluator.java
rename to samoa-api/src/main/java/org/apache/samoa/evaluation/WindowClassificationPerformanceEvaluator.java
index 11a77a0..c428a7f 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/WindowClassificationPerformanceEvaluator.java
+++ b/samoa-api/src/main/java/org/apache/samoa/evaluation/WindowClassificationPerformanceEvaluator.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.evaluation;
+package org.apache.samoa.evaluation;
 
 /*
  * #%L
@@ -20,11 +20,12 @@
  * #L%
  */
 
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.Utils;
+import org.apache.samoa.moa.AbstractMOAObject;
+import org.apache.samoa.moa.core.Measurement;
+
 import com.github.javacliparser.IntOption;
-import com.yahoo.labs.samoa.moa.AbstractMOAObject;
-import com.yahoo.labs.samoa.moa.core.Measurement;
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.instances.Utils;
 
 /**
  * Classification evaluator that updates evaluation results using a sliding window.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/measures/CMM.java b/samoa-api/src/main/java/org/apache/samoa/evaluation/measures/CMM.java
similarity index 97%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/measures/CMM.java
rename to samoa-api/src/main/java/org/apache/samoa/evaluation/measures/CMM.java
index 5ef959a..9ea95f9 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/measures/CMM.java
+++ b/samoa-api/src/main/java/org/apache/samoa/evaluation/measures/CMM.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.evaluation.measures;
+package org.apache.samoa.evaluation.measures;
 
 /*
  * #%L
@@ -20,14 +20,15 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.evaluation.measures.CMM_GTAnalysis.CMMPoint;
-import com.yahoo.labs.samoa.moa.cluster.Cluster;
-import com.yahoo.labs.samoa.moa.cluster.Clustering;
-import com.yahoo.labs.samoa.moa.cluster.SphereCluster;
-import com.yahoo.labs.samoa.moa.evaluation.MeasureCollection;
-import com.yahoo.labs.samoa.moa.core.DataPoint;
 import java.util.ArrayList;
 
+import org.apache.samoa.evaluation.measures.CMM_GTAnalysis.CMMPoint;
+import org.apache.samoa.moa.cluster.Cluster;
+import org.apache.samoa.moa.cluster.Clustering;
+import org.apache.samoa.moa.cluster.SphereCluster;
+import org.apache.samoa.moa.core.DataPoint;
+import org.apache.samoa.moa.evaluation.MeasureCollection;
+
 /**
  * [CMM.java]
  * 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/measures/CMM_GTAnalysis.java b/samoa-api/src/main/java/org/apache/samoa/evaluation/measures/CMM_GTAnalysis.java
similarity index 98%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/measures/CMM_GTAnalysis.java
rename to samoa-api/src/main/java/org/apache/samoa/evaluation/measures/CMM_GTAnalysis.java
index e7ae848..a48c054 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/measures/CMM_GTAnalysis.java
+++ b/samoa-api/src/main/java/org/apache/samoa/evaluation/measures/CMM_GTAnalysis.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.evaluation.measures;
+package org.apache.samoa.evaluation.measures;
 
 /*
  * #%L
@@ -20,14 +20,15 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.moa.cluster.Clustering;
-import com.yahoo.labs.samoa.moa.core.AutoExpandVector;
-import com.yahoo.labs.samoa.moa.core.DataPoint;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
 
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.moa.cluster.Clustering;
+import org.apache.samoa.moa.core.AutoExpandVector;
+import org.apache.samoa.moa.core.DataPoint;
+
 /**
  * [CMM_GTAnalysis.java]
  * 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/measures/EntropyCollection.java b/samoa-api/src/main/java/org/apache/samoa/evaluation/measures/EntropyCollection.java
similarity index 94%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/measures/EntropyCollection.java
rename to samoa-api/src/main/java/org/apache/samoa/evaluation/measures/EntropyCollection.java
index 962e66a..a2f0100 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/measures/EntropyCollection.java
+++ b/samoa-api/src/main/java/org/apache/samoa/evaluation/measures/EntropyCollection.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.evaluation.measures;
+package org.apache.samoa.evaluation.measures;
 
 /*
  * #%L
@@ -22,14 +22,13 @@
 
 import java.util.ArrayList;
 
+import org.apache.samoa.moa.cluster.Clustering;
+import org.apache.samoa.moa.core.DataPoint;
+import org.apache.samoa.moa.evaluation.MeasureCollection;
+import org.apache.samoa.moa.evaluation.MembershipMatrix;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.yahoo.labs.samoa.moa.cluster.Clustering;
-import com.yahoo.labs.samoa.moa.core.DataPoint;
-import com.yahoo.labs.samoa.moa.evaluation.MeasureCollection;
-import com.yahoo.labs.samoa.moa.evaluation.MembershipMatrix;
-
 public class EntropyCollection extends MeasureCollection {
 
   private static final Logger logger = LoggerFactory.getLogger(EntropyCollection.class);
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/measures/F1.java b/samoa-api/src/main/java/org/apache/samoa/evaluation/measures/F1.java
similarity index 91%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/measures/F1.java
rename to samoa-api/src/main/java/org/apache/samoa/evaluation/measures/F1.java
index a31e6ce..2da9a59 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/measures/F1.java
+++ b/samoa-api/src/main/java/org/apache/samoa/evaluation/measures/F1.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.evaluation.measures;
+package org.apache.samoa.evaluation.measures;
 
 /*
  * #%L
@@ -20,12 +20,13 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.cluster.Clustering;
-import com.yahoo.labs.samoa.moa.evaluation.MeasureCollection;
-import com.yahoo.labs.samoa.moa.evaluation.MembershipMatrix;
-import com.yahoo.labs.samoa.moa.core.DataPoint;
 import java.util.ArrayList;
 
+import org.apache.samoa.moa.cluster.Clustering;
+import org.apache.samoa.moa.core.DataPoint;
+import org.apache.samoa.moa.evaluation.MeasureCollection;
+import org.apache.samoa.moa.evaluation.MembershipMatrix;
+
 public class F1 extends MeasureCollection {
 
   @Override
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/measures/General.java b/samoa-api/src/main/java/org/apache/samoa/evaluation/measures/General.java
similarity index 94%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/measures/General.java
rename to samoa-api/src/main/java/org/apache/samoa/evaluation/measures/General.java
index c15a8f8..1a9ca1d 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/measures/General.java
+++ b/samoa-api/src/main/java/org/apache/samoa/evaluation/measures/General.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.evaluation.measures;
+package org.apache.samoa.evaluation.measures;
 
 /*
  * #%L
@@ -20,13 +20,14 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.moa.cluster.Clustering;
-import com.yahoo.labs.samoa.moa.cluster.SphereCluster;
-import com.yahoo.labs.samoa.moa.evaluation.MeasureCollection;
-import com.yahoo.labs.samoa.moa.core.DataPoint;
 import java.util.ArrayList;
 
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.moa.cluster.Clustering;
+import org.apache.samoa.moa.cluster.SphereCluster;
+import org.apache.samoa.moa.core.DataPoint;
+import org.apache.samoa.moa.evaluation.MeasureCollection;
+
 public class General extends MeasureCollection {
   private int numPoints;
   private int numFClusters;
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/measures/SSQ.java b/samoa-api/src/main/java/org/apache/samoa/evaluation/measures/SSQ.java
similarity index 90%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/measures/SSQ.java
rename to samoa-api/src/main/java/org/apache/samoa/evaluation/measures/SSQ.java
index 175b925..8ee6a43 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/measures/SSQ.java
+++ b/samoa-api/src/main/java/org/apache/samoa/evaluation/measures/SSQ.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.evaluation.measures;
+package org.apache.samoa.evaluation.measures;
 
 /*
  * #%L
@@ -21,10 +21,10 @@
  */
 import java.util.ArrayList;
 
-import com.yahoo.labs.samoa.moa.cluster.Clustering;
-import com.yahoo.labs.samoa.moa.core.DataPoint;
-import com.yahoo.labs.samoa.moa.evaluation.MeasureCollection;
-import com.yahoo.labs.samoa.instances.Instance;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.moa.cluster.Clustering;
+import org.apache.samoa.moa.core.DataPoint;
+import org.apache.samoa.moa.evaluation.MeasureCollection;
 
 public class SSQ extends MeasureCollection {
 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/measures/Separation.java b/samoa-api/src/main/java/org/apache/samoa/evaluation/measures/Separation.java
similarity index 88%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/measures/Separation.java
rename to samoa-api/src/main/java/org/apache/samoa/evaluation/measures/Separation.java
index 19b3310..0d8710a 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/measures/Separation.java
+++ b/samoa-api/src/main/java/org/apache/samoa/evaluation/measures/Separation.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.evaluation.measures;
+package org.apache.samoa.evaluation.measures;
 
 /*
  * #%L
@@ -19,16 +19,17 @@
  * limitations under the License.
  * #L%
  */
-import com.yahoo.labs.samoa.instances.DenseInstance;
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.moa.cluster.Cluster;
-import com.yahoo.labs.samoa.moa.cluster.Clustering;
-import com.yahoo.labs.samoa.moa.cluster.SphereCluster;
-import com.yahoo.labs.samoa.moa.core.DataPoint;
-import com.yahoo.labs.samoa.moa.evaluation.MeasureCollection;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.samoa.instances.DenseInstance;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.moa.cluster.Cluster;
+import org.apache.samoa.moa.cluster.Clustering;
+import org.apache.samoa.moa.cluster.SphereCluster;
+import org.apache.samoa.moa.core.DataPoint;
+import org.apache.samoa.moa.evaluation.MeasureCollection;
+
 public class Separation extends MeasureCollection {
 
   public Separation() {
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/measures/SilhouetteCoefficient.java b/samoa-api/src/main/java/org/apache/samoa/evaluation/measures/SilhouetteCoefficient.java
similarity index 93%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/measures/SilhouetteCoefficient.java
rename to samoa-api/src/main/java/org/apache/samoa/evaluation/measures/SilhouetteCoefficient.java
index 42ddd50..d0e4bc9 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/measures/SilhouetteCoefficient.java
+++ b/samoa-api/src/main/java/org/apache/samoa/evaluation/measures/SilhouetteCoefficient.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.evaluation.measures;
+package org.apache.samoa.evaluation.measures;
 
 /*
  * #%L
@@ -20,13 +20,13 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.cluster.Cluster;
-import com.yahoo.labs.samoa.moa.cluster.Clustering;
-import com.yahoo.labs.samoa.moa.evaluation.MeasureCollection;
-import com.yahoo.labs.samoa.moa.core.DataPoint;
-
 import java.util.ArrayList;
 
+import org.apache.samoa.moa.cluster.Cluster;
+import org.apache.samoa.moa.cluster.Clustering;
+import org.apache.samoa.moa.core.DataPoint;
+import org.apache.samoa.moa.evaluation.MeasureCollection;
+
 public class SilhouetteCoefficient extends MeasureCollection {
   private static final double pointInclusionProbThreshold = 0.8;
 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/measures/StatisticalCollection.java b/samoa-api/src/main/java/org/apache/samoa/evaluation/measures/StatisticalCollection.java
similarity index 95%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/measures/StatisticalCollection.java
rename to samoa-api/src/main/java/org/apache/samoa/evaluation/measures/StatisticalCollection.java
index 8366401..13c98a4 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/evaluation/measures/StatisticalCollection.java
+++ b/samoa-api/src/main/java/org/apache/samoa/evaluation/measures/StatisticalCollection.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.evaluation.measures;
+package org.apache.samoa.evaluation.measures;
 
 /*
  * #%L
@@ -23,10 +23,10 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 
-import com.yahoo.labs.samoa.moa.cluster.Clustering;
-import com.yahoo.labs.samoa.moa.core.DataPoint;
-import com.yahoo.labs.samoa.moa.evaluation.MeasureCollection;
-import com.yahoo.labs.samoa.moa.evaluation.MembershipMatrix;
+import org.apache.samoa.moa.cluster.Clustering;
+import org.apache.samoa.moa.core.DataPoint;
+import org.apache.samoa.moa.evaluation.MeasureCollection;
+import org.apache.samoa.moa.evaluation.MembershipMatrix;
 
 public class StatisticalCollection extends MeasureCollection {
   private boolean debug = false;
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/examples/HelloWorldContentEvent.java b/samoa-api/src/main/java/org/apache/samoa/examples/HelloWorldContentEvent.java
similarity index 94%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/examples/HelloWorldContentEvent.java
rename to samoa-api/src/main/java/org/apache/samoa/examples/HelloWorldContentEvent.java
index da2585a..8105745 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/examples/HelloWorldContentEvent.java
+++ b/samoa-api/src/main/java/org/apache/samoa/examples/HelloWorldContentEvent.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.examples;
+package org.apache.samoa.examples;
 
 /*
  * #%L
@@ -20,7 +20,7 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.core.ContentEvent;
+import org.apache.samoa.core.ContentEvent;
 
 /**
  * Example {@link ContentEvent} that contains a single integer.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/examples/HelloWorldDestinationProcessor.java b/samoa-api/src/main/java/org/apache/samoa/examples/HelloWorldDestinationProcessor.java
similarity index 90%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/examples/HelloWorldDestinationProcessor.java
rename to samoa-api/src/main/java/org/apache/samoa/examples/HelloWorldDestinationProcessor.java
index d88839e..22cf604 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/examples/HelloWorldDestinationProcessor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/examples/HelloWorldDestinationProcessor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.examples;
+package org.apache.samoa.examples;
 
 /*
  * #%L
@@ -20,8 +20,8 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.Processor;
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.Processor;
 
 /**
  * Example {@link Processor} that simply prints the received events to standard output.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/examples/HelloWorldSourceProcessor.java b/samoa-api/src/main/java/org/apache/samoa/examples/HelloWorldSourceProcessor.java
similarity index 90%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/examples/HelloWorldSourceProcessor.java
rename to samoa-api/src/main/java/org/apache/samoa/examples/HelloWorldSourceProcessor.java
index 137b5de..6d936af 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/examples/HelloWorldSourceProcessor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/examples/HelloWorldSourceProcessor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.examples;
+package org.apache.samoa.examples;
 
 /*
  * #%L
@@ -22,9 +22,9 @@
 
 import java.util.Random;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.EntranceProcessor;
-import com.yahoo.labs.samoa.core.Processor;
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.EntranceProcessor;
+import org.apache.samoa.core.Processor;
 
 /**
  * Example {@link EntranceProcessor} that generates a stream of random integers.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/examples/HelloWorldTask.java b/samoa-api/src/main/java/org/apache/samoa/examples/HelloWorldTask.java
similarity index 92%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/examples/HelloWorldTask.java
rename to samoa-api/src/main/java/org/apache/samoa/examples/HelloWorldTask.java
index d8d5317..34ccb65 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/examples/HelloWorldTask.java
+++ b/samoa-api/src/main/java/org/apache/samoa/examples/HelloWorldTask.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.examples;
+package org.apache.samoa.examples;
 
 /*
  * #%L
@@ -23,17 +23,17 @@
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
+import org.apache.samoa.tasks.Task;
+import org.apache.samoa.topology.ComponentFactory;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.topology.Topology;
+import org.apache.samoa.topology.TopologyBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.github.javacliparser.Configurable;
 import com.github.javacliparser.IntOption;
 import com.github.javacliparser.StringOption;
-import com.yahoo.labs.samoa.tasks.Task;
-import com.yahoo.labs.samoa.topology.ComponentFactory;
-import com.yahoo.labs.samoa.topology.Stream;
-import com.yahoo.labs.samoa.topology.Topology;
-import com.yahoo.labs.samoa.topology.TopologyBuilder;
 
 /**
  * Example {@link Task} in SAMOA. This task simply sends events from a source {@link HelloWorldSourceProcessor} to a
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/AdaptiveLearner.java b/samoa-api/src/main/java/org/apache/samoa/learners/AdaptiveLearner.java
similarity index 88%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/AdaptiveLearner.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/AdaptiveLearner.java
index 139540c..28d0059 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/AdaptiveLearner.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/AdaptiveLearner.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners;
+package org.apache.samoa.learners;
 
 /*
  * #%L
@@ -24,8 +24,8 @@
  * License
  */
 
-import com.yahoo.labs.samoa.moa.classifiers.core.driftdetection.ChangeDetector;
-import com.yahoo.labs.samoa.topology.Stream;
+import org.apache.samoa.moa.classifiers.core.driftdetection.ChangeDetector;
+import org.apache.samoa.topology.Stream;
 
 /**
  * The Interface Adaptive Learner. Initializing Classifier should initalize PI to connect the Classifier with the input
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/ClassificationLearner.java b/samoa-api/src/main/java/org/apache/samoa/learners/ClassificationLearner.java
similarity index 89%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/ClassificationLearner.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/ClassificationLearner.java
index 5c5284e..50bfe2e 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/ClassificationLearner.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/ClassificationLearner.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners;
+package org.apache.samoa.learners;
 
 /*
  * #%L
@@ -20,7 +20,7 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.learners.Learner;
+import org.apache.samoa.learners.Learner;
 
 public interface ClassificationLearner extends Learner {
 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/InstanceContentEvent.java b/samoa-api/src/main/java/org/apache/samoa/learners/InstanceContentEvent.java
similarity index 95%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/InstanceContentEvent.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/InstanceContentEvent.java
index 9ff5e66..69a4428 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/InstanceContentEvent.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/InstanceContentEvent.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners;
+package org.apache.samoa.learners;
 
 /*
  * #%L
@@ -24,10 +24,11 @@
  * License
  */
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.SerializableInstance;
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.SerializableInstance;
+import org.apache.samoa.instances.Instance;
+
 import net.jcip.annotations.Immutable;
-import com.yahoo.labs.samoa.instances.Instance;
 
 //import weka.core.Instance;
 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/InstancesContentEvent.java b/samoa-api/src/main/java/org/apache/samoa/learners/InstancesContentEvent.java
similarity index 95%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/InstancesContentEvent.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/InstancesContentEvent.java
index cbdb881..2bab8a6 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/InstancesContentEvent.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/InstancesContentEvent.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners;
+package org.apache.samoa.learners;
 
 /*
  * #%L
@@ -24,13 +24,15 @@
  * License
  */
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.SerializableInstance;
 import net.jcip.annotations.Immutable;
-import com.yahoo.labs.samoa.instances.Instance;
+
 import java.util.LinkedList;
 import java.util.List;
 
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.SerializableInstance;
+import org.apache.samoa.instances.Instance;
+
 //import weka.core.Instance;
 
 /**
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/Learner.java b/samoa-api/src/main/java/org/apache/samoa/learners/Learner.java
similarity index 86%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/Learner.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/Learner.java
index f934279..730f4d9 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/Learner.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/Learner.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners;
+package org.apache.samoa.learners;
 
 /*
  * #%L
@@ -20,14 +20,14 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.topology.Stream;
-import com.yahoo.labs.samoa.topology.TopologyBuilder;
-
 import java.io.Serializable;
 import java.util.Set;
 
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.topology.TopologyBuilder;
+
 /**
  * The Interface Classifier. Initializing Classifier should initalize PI to connect the Classifier with the input stream
  * and initialize result stream so that other PI can connect to the classification result of this classifier
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/RegressionLearner.java b/samoa-api/src/main/java/org/apache/samoa/learners/RegressionLearner.java
similarity index 89%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/RegressionLearner.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/RegressionLearner.java
index e4c5349..764c87b 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/RegressionLearner.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/RegressionLearner.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners;
+package org.apache.samoa.learners;
 
 /*
  * #%L
@@ -20,7 +20,7 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.learners.Learner;
+import org.apache.samoa.learners.Learner;
 
 public interface RegressionLearner extends Learner {
 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/ResultContentEvent.java b/samoa-api/src/main/java/org/apache/samoa/learners/ResultContentEvent.java
similarity index 95%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/ResultContentEvent.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/ResultContentEvent.java
index 7426d7d..3ede55c 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/ResultContentEvent.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/ResultContentEvent.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners;
+package org.apache.samoa.learners;
 
 /*
  * #%L
@@ -20,9 +20,9 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.SerializableInstance;
-import com.yahoo.labs.samoa.instances.Instance;
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.SerializableInstance;
+import org.apache.samoa.instances.Instance;
 
 /**
  * License
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/LocalLearner.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/LocalLearner.java
similarity index 92%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/LocalLearner.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/LocalLearner.java
index 9334f7e..6d6a664 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/LocalLearner.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/LocalLearner.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers;
+package org.apache.samoa.learners.classifiers;
 
 /*
  * #%L
@@ -23,8 +23,8 @@
 import java.io.Serializable;
 import java.util.Map;
 
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.instances.Instances;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.Instances;
 
 /**
  * Learner interface for non-distributed learners.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/LocalLearnerProcessor.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/LocalLearnerProcessor.java
similarity index 91%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/LocalLearnerProcessor.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/LocalLearnerProcessor.java
index 2fd0d83..5e2c927 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/LocalLearnerProcessor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/LocalLearnerProcessor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers;
+package org.apache.samoa.learners.classifiers;
 
 /*
  * #%L
@@ -24,18 +24,17 @@
  * License
  */
 
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.learners.InstanceContentEvent;
+import org.apache.samoa.learners.ResultContentEvent;
+import org.apache.samoa.moa.classifiers.core.driftdetection.ChangeDetector;
+import org.apache.samoa.topology.Stream;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.learners.InstanceContentEvent;
-import com.yahoo.labs.samoa.learners.ResultContentEvent;
-import com.yahoo.labs.samoa.moa.classifiers.core.driftdetection.ChangeDetector;
-import com.yahoo.labs.samoa.topology.Stream;
-
-import static com.yahoo.labs.samoa.moa.core.Utils.maxIndex;
+import static org.apache.samoa.moa.core.Utils.maxIndex;
 
 /**
  * The Class LearnerProcessor.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/NaiveBayes.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/NaiveBayes.java
similarity index 96%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/NaiveBayes.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/NaiveBayes.java
index a96bb6f..df24cd5 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/NaiveBayes.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/NaiveBayes.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers;
+package org.apache.samoa.learners.classifiers;
 
 /*
  * #%L
@@ -23,14 +23,13 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.moa.classifiers.core.attributeclassobservers.GaussianNumericAttributeClassObserver;
+import org.apache.samoa.moa.core.GaussianEstimator;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.moa.classifiers.core.attributeclassobservers.GaussianNumericAttributeClassObserver;
-import com.yahoo.labs.samoa.moa.core.GaussianEstimator;
-
 /**
  * Implementation of a non-distributed Naive Bayes classifier.
  * 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/SimpleClassifierAdapter.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/SimpleClassifierAdapter.java
similarity index 82%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/SimpleClassifierAdapter.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/SimpleClassifierAdapter.java
index 518ffe8..8db8482 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/SimpleClassifierAdapter.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/SimpleClassifierAdapter.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers;
+package org.apache.samoa.learners.classifiers;
 
 /*
  * #%L
@@ -22,12 +22,13 @@
 /**
  * License
  */
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.instances.InstancesHeader;
+import org.apache.samoa.moa.classifiers.functions.MajorityClass;
+
 import com.github.javacliparser.ClassOption;
 import com.github.javacliparser.Configurable;
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.instances.InstancesHeader;
-import com.yahoo.labs.samoa.moa.classifiers.functions.MajorityClass;
 
 /**
  * 
@@ -42,11 +43,11 @@
   private static final long serialVersionUID = 4372366401338704353L;
 
   public ClassOption learnerOption = new ClassOption("learner", 'l',
-      "Classifier to train.", com.yahoo.labs.samoa.moa.classifiers.Classifier.class, MajorityClass.class.getName());
+      "Classifier to train.", org.apache.samoa.moa.classifiers.Classifier.class, MajorityClass.class.getName());
   /**
    * The learner.
    */
-  protected com.yahoo.labs.samoa.moa.classifiers.Classifier learner;
+  protected org.apache.samoa.moa.classifiers.Classifier learner;
 
   /**
    * The is init.
@@ -71,7 +72,7 @@
    * @param dataset
    *          the dataset
    */
-  public SimpleClassifierAdapter(com.yahoo.labs.samoa.moa.classifiers.Classifier learner, Instances dataset) {
+  public SimpleClassifierAdapter(org.apache.samoa.moa.classifiers.Classifier learner, Instances dataset) {
     this.learner = learner.copy();
     this.isInit = false;
     this.dataset = dataset;
@@ -82,7 +83,7 @@
    * 
    */
   public SimpleClassifierAdapter() {
-    this.learner = ((com.yahoo.labs.samoa.moa.classifiers.Classifier) this.learnerOption.getValue()).copy();
+    this.learner = ((org.apache.samoa.moa.classifiers.Classifier) this.learnerOption.getValue()).copy();
     this.isInit = false;
   }
 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/SingleClassifier.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/SingleClassifier.java
similarity index 85%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/SingleClassifier.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/SingleClassifier.java
index c998f0d..5c989f3 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/SingleClassifier.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/SingleClassifier.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers;
+package org.apache.samoa.learners.classifiers;
 
 /*
  * #%L
@@ -25,17 +25,19 @@
  */
 
 import com.google.common.collect.ImmutableSet;
+
 import java.util.Set;
 
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.learners.AdaptiveLearner;
+import org.apache.samoa.learners.Learner;
+import org.apache.samoa.moa.classifiers.core.driftdetection.ChangeDetector;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.topology.TopologyBuilder;
+
 import com.github.javacliparser.ClassOption;
 import com.github.javacliparser.Configurable;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.learners.AdaptiveLearner;
-import com.yahoo.labs.samoa.learners.Learner;
-import com.yahoo.labs.samoa.moa.classifiers.core.driftdetection.ChangeDetector;
-import com.yahoo.labs.samoa.topology.Stream;
-import com.yahoo.labs.samoa.topology.TopologyBuilder;
 
 /**
  * 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/ensemble/AdaptiveBagging.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/ensemble/AdaptiveBagging.java
similarity index 87%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/ensemble/AdaptiveBagging.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/ensemble/AdaptiveBagging.java
index e029272..9ffba2a 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/ensemble/AdaptiveBagging.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/ensemble/AdaptiveBagging.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.ensemble;
+package org.apache.samoa.learners.classifiers.ensemble;
 
 /*
  * #%L
@@ -25,23 +25,24 @@
  */
 
 import com.google.common.collect.ImmutableSet;
+
 import java.util.Set;
 
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.learners.AdaptiveLearner;
+import org.apache.samoa.learners.Learner;
+import org.apache.samoa.learners.classifiers.trees.VerticalHoeffdingTree;
+import org.apache.samoa.moa.classifiers.core.driftdetection.ADWINChangeDetector;
+import org.apache.samoa.moa.classifiers.core.driftdetection.ChangeDetector;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.topology.TopologyBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.github.javacliparser.ClassOption;
 import com.github.javacliparser.Configurable;
 import com.github.javacliparser.IntOption;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.learners.AdaptiveLearner;
-import com.yahoo.labs.samoa.learners.Learner;
-import com.yahoo.labs.samoa.learners.classifiers.trees.VerticalHoeffdingTree;
-import com.yahoo.labs.samoa.moa.classifiers.core.driftdetection.ADWINChangeDetector;
-import com.yahoo.labs.samoa.moa.classifiers.core.driftdetection.ChangeDetector;
-import com.yahoo.labs.samoa.topology.Stream;
-import com.yahoo.labs.samoa.topology.TopologyBuilder;
 
 /**
  * The Bagging Classifier by Oza and Russell.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/ensemble/Bagging.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/ensemble/Bagging.java
similarity index 90%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/ensemble/Bagging.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/ensemble/Bagging.java
index 1d507a5..7355b1a 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/ensemble/Bagging.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/ensemble/Bagging.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.ensemble;
+package org.apache.samoa.learners.classifiers.ensemble;
 
 /*
  * #%L
@@ -25,17 +25,19 @@
  */
 
 import com.google.common.collect.ImmutableSet;
+
 import java.util.Set;
 
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.learners.Learner;
-import com.yahoo.labs.samoa.topology.Stream;
-import com.yahoo.labs.samoa.topology.TopologyBuilder;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.learners.Learner;
+import org.apache.samoa.learners.classifiers.trees.VerticalHoeffdingTree;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.topology.TopologyBuilder;
+
 import com.github.javacliparser.ClassOption;
 import com.github.javacliparser.Configurable;
 import com.github.javacliparser.IntOption;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.learners.classifiers.trees.VerticalHoeffdingTree;
 
 /**
  * The Bagging Classifier by Oza and Russell.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/ensemble/BaggingDistributorProcessor.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/ensemble/BaggingDistributorProcessor.java
similarity index 93%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/ensemble/BaggingDistributorProcessor.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/ensemble/BaggingDistributorProcessor.java
index ff5aa22..33615db 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/ensemble/BaggingDistributorProcessor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/ensemble/BaggingDistributorProcessor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.ensemble;
+package org.apache.samoa.learners.classifiers.ensemble;
 
 /*
  * #%L
@@ -24,14 +24,15 @@
  * License
  */
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.learners.InstanceContentEvent;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.moa.core.MiscUtils;
-import com.yahoo.labs.samoa.topology.Stream;
 import java.util.Random;
 
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.learners.InstanceContentEvent;
+import org.apache.samoa.moa.core.MiscUtils;
+import org.apache.samoa.topology.Stream;
+
 /**
  * The Class BaggingDistributorPE.
  */
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/ensemble/Boosting.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/ensemble/Boosting.java
similarity index 91%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/ensemble/Boosting.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/ensemble/Boosting.java
index 088cb6a..14cd98b 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/ensemble/Boosting.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/ensemble/Boosting.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.ensemble;
+package org.apache.samoa.learners.classifiers.ensemble;
 
 /*
  * #%L
@@ -25,17 +25,19 @@
  */
 
 import com.google.common.collect.ImmutableSet;
+
 import java.util.Set;
 
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.learners.Learner;
+import org.apache.samoa.learners.classifiers.SingleClassifier;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.topology.TopologyBuilder;
+
 import com.github.javacliparser.ClassOption;
 import com.github.javacliparser.Configurable;
 import com.github.javacliparser.IntOption;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.learners.Learner;
-import com.yahoo.labs.samoa.learners.classifiers.SingleClassifier;
-import com.yahoo.labs.samoa.topology.Stream;
-import com.yahoo.labs.samoa.topology.TopologyBuilder;
 
 /**
  * The Bagging Classifier by Oza and Russell.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/ensemble/BoostingDistributorProcessor.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/ensemble/BoostingDistributorProcessor.java
similarity index 88%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/ensemble/BoostingDistributorProcessor.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/ensemble/BoostingDistributorProcessor.java
index d509f13..bcfb853 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/ensemble/BoostingDistributorProcessor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/ensemble/BoostingDistributorProcessor.java
@@ -1,6 +1,6 @@
-package com.yahoo.labs.samoa.learners.classifiers.ensemble;
+package org.apache.samoa.learners.classifiers.ensemble;
 
-import com.yahoo.labs.samoa.learners.InstanceContentEvent;
+import org.apache.samoa.learners.InstanceContentEvent;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/ensemble/BoostingPredictionCombinerProcessor.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/ensemble/BoostingPredictionCombinerProcessor.java
similarity index 92%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/ensemble/BoostingPredictionCombinerProcessor.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/ensemble/BoostingPredictionCombinerProcessor.java
index 7e5fb8d..6cfcfae 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/ensemble/BoostingPredictionCombinerProcessor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/ensemble/BoostingPredictionCombinerProcessor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.ensemble;
+package org.apache.samoa.learners.classifiers.ensemble;
 
 /*
  * #%L
@@ -27,13 +27,13 @@
 import java.util.Map;
 import java.util.Random;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.learners.InstanceContentEvent;
-import com.yahoo.labs.samoa.learners.ResultContentEvent;
-import com.yahoo.labs.samoa.moa.core.DoubleVector;
-import com.yahoo.labs.samoa.moa.core.Utils;
-import com.yahoo.labs.samoa.topology.Stream;
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.learners.InstanceContentEvent;
+import org.apache.samoa.learners.ResultContentEvent;
+import org.apache.samoa.moa.core.DoubleVector;
+import org.apache.samoa.moa.core.Utils;
+import org.apache.samoa.topology.Stream;
 
 /**
  * The Class BoostingPredictionCombinerProcessor.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/ensemble/PredictionCombinerProcessor.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/ensemble/PredictionCombinerProcessor.java
similarity index 94%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/ensemble/PredictionCombinerProcessor.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/ensemble/PredictionCombinerProcessor.java
index e79baca..2e5f335 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/ensemble/PredictionCombinerProcessor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/ensemble/PredictionCombinerProcessor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.ensemble;
+package org.apache.samoa.learners.classifiers.ensemble;
 
 /*
  * #%L
@@ -26,11 +26,11 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.learners.ResultContentEvent;
-import com.yahoo.labs.samoa.moa.core.DoubleVector;
-import com.yahoo.labs.samoa.topology.Stream;
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.learners.ResultContentEvent;
+import org.apache.samoa.moa.core.DoubleVector;
+import org.apache.samoa.topology.Stream;
 
 /**
  * The Class PredictionCombinerProcessor.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/AMRulesRegressor.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/AMRulesRegressor.java
similarity index 91%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/AMRulesRegressor.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/AMRulesRegressor.java
index 18a459d..58d3eb6 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/AMRulesRegressor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/AMRulesRegressor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.rules;
+package org.apache.samoa.learners.classifiers.rules;
 
 /*
  * #%L
@@ -21,22 +21,24 @@
  */
 
 import com.google.common.collect.ImmutableSet;
+
 import java.util.Set;
 
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.learners.RegressionLearner;
+import org.apache.samoa.learners.classifiers.rules.centralized.AMRulesRegressorProcessor;
+import org.apache.samoa.moa.classifiers.rules.core.attributeclassobservers.FIMTDDNumericAttributeClassLimitObserver;
+import org.apache.samoa.moa.classifiers.rules.core.voting.ErrorWeightedVote;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.topology.TopologyBuilder;
+
 import com.github.javacliparser.Configurable;
 import com.github.javacliparser.ClassOption;
 import com.github.javacliparser.FlagOption;
 import com.github.javacliparser.FloatOption;
 import com.github.javacliparser.IntOption;
 import com.github.javacliparser.MultiChoiceOption;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.learners.RegressionLearner;
-import com.yahoo.labs.samoa.learners.classifiers.rules.centralized.AMRulesRegressorProcessor;
-import com.yahoo.labs.samoa.moa.classifiers.rules.core.attributeclassobservers.FIMTDDNumericAttributeClassLimitObserver;
-import com.yahoo.labs.samoa.moa.classifiers.rules.core.voting.ErrorWeightedVote;
-import com.yahoo.labs.samoa.topology.Stream;
-import com.yahoo.labs.samoa.topology.TopologyBuilder;
 
 /**
  * AMRules Regressor is the task for the serialized implementation of AMRules algorithm for regression rule. It is
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/HorizontalAMRulesRegressor.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/HorizontalAMRulesRegressor.java
similarity index 92%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/HorizontalAMRulesRegressor.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/HorizontalAMRulesRegressor.java
index 20644d7..822c2be 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/HorizontalAMRulesRegressor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/HorizontalAMRulesRegressor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.rules;
+package org.apache.samoa.learners.classifiers.rules;
 
 /*
  * #%L
@@ -21,23 +21,25 @@
  */
 
 import com.google.common.collect.ImmutableSet;
+
 import java.util.Set;
 
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.learners.RegressionLearner;
+import org.apache.samoa.learners.classifiers.rules.distributed.AMRDefaultRuleProcessor;
+import org.apache.samoa.learners.classifiers.rules.distributed.AMRLearnerProcessor;
+import org.apache.samoa.learners.classifiers.rules.distributed.AMRRuleSetProcessor;
+import org.apache.samoa.moa.classifiers.rules.core.attributeclassobservers.FIMTDDNumericAttributeClassLimitObserver;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.topology.TopologyBuilder;
+
 import com.github.javacliparser.ClassOption;
 import com.github.javacliparser.Configurable;
 import com.github.javacliparser.FlagOption;
 import com.github.javacliparser.FloatOption;
 import com.github.javacliparser.IntOption;
 import com.github.javacliparser.MultiChoiceOption;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.learners.RegressionLearner;
-import com.yahoo.labs.samoa.learners.classifiers.rules.distributed.AMRDefaultRuleProcessor;
-import com.yahoo.labs.samoa.learners.classifiers.rules.distributed.AMRLearnerProcessor;
-import com.yahoo.labs.samoa.learners.classifiers.rules.distributed.AMRRuleSetProcessor;
-import com.yahoo.labs.samoa.moa.classifiers.rules.core.attributeclassobservers.FIMTDDNumericAttributeClassLimitObserver;
-import com.yahoo.labs.samoa.topology.Stream;
-import com.yahoo.labs.samoa.topology.TopologyBuilder;
 
 /**
  * Horizontal AMRules Regressor is a distributed learner for regression rules learner. It applies both horizontal
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/VerticalAMRulesRegressor.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/VerticalAMRulesRegressor.java
similarity index 92%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/VerticalAMRulesRegressor.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/VerticalAMRulesRegressor.java
index 08c064f..2fb5c2d 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/VerticalAMRulesRegressor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/VerticalAMRulesRegressor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.rules;
+package org.apache.samoa.learners.classifiers.rules;
 
 /*
  * #%L
@@ -21,6 +21,15 @@
  */
 import java.util.Set;
 
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.learners.RegressionLearner;
+import org.apache.samoa.learners.classifiers.rules.distributed.AMRulesAggregatorProcessor;
+import org.apache.samoa.learners.classifiers.rules.distributed.AMRulesStatisticsProcessor;
+import org.apache.samoa.moa.classifiers.rules.core.attributeclassobservers.FIMTDDNumericAttributeClassLimitObserver;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.topology.TopologyBuilder;
+
 import com.github.javacliparser.ClassOption;
 import com.github.javacliparser.Configurable;
 import com.github.javacliparser.FlagOption;
@@ -28,14 +37,6 @@
 import com.github.javacliparser.IntOption;
 import com.github.javacliparser.MultiChoiceOption;
 import com.google.common.collect.ImmutableSet;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.learners.RegressionLearner;
-import com.yahoo.labs.samoa.learners.classifiers.rules.distributed.AMRulesAggregatorProcessor;
-import com.yahoo.labs.samoa.learners.classifiers.rules.distributed.AMRulesStatisticsProcessor;
-import com.yahoo.labs.samoa.moa.classifiers.rules.core.attributeclassobservers.FIMTDDNumericAttributeClassLimitObserver;
-import com.yahoo.labs.samoa.topology.Stream;
-import com.yahoo.labs.samoa.topology.TopologyBuilder;
 
 /**
  * Vertical AMRules Regressor is a distributed learner for regression rules learner. It applies vertical parallelism on
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/centralized/AMRulesRegressorProcessor.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/centralized/AMRulesRegressorProcessor.java
similarity index 94%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/centralized/AMRulesRegressorProcessor.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/centralized/AMRulesRegressorProcessor.java
index 4cf21f0..55f0064 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/centralized/AMRulesRegressorProcessor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/centralized/AMRulesRegressorProcessor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.rules.centralized;
+package org.apache.samoa.learners.classifiers.rules.centralized;
 
 /*
  * #%L
@@ -24,18 +24,18 @@
 import java.util.LinkedList;
 import java.util.List;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.learners.InstanceContentEvent;
-import com.yahoo.labs.samoa.learners.ResultContentEvent;
-import com.yahoo.labs.samoa.learners.classifiers.rules.common.ActiveRule;
-import com.yahoo.labs.samoa.learners.classifiers.rules.common.Perceptron;
-import com.yahoo.labs.samoa.learners.classifiers.rules.common.RuleActiveRegressionNode;
-import com.yahoo.labs.samoa.moa.classifiers.rules.core.attributeclassobservers.FIMTDDNumericAttributeClassLimitObserver;
-import com.yahoo.labs.samoa.moa.classifiers.rules.core.voting.ErrorWeightedVote;
-import com.yahoo.labs.samoa.topology.Stream;
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.learners.InstanceContentEvent;
+import org.apache.samoa.learners.ResultContentEvent;
+import org.apache.samoa.learners.classifiers.rules.common.ActiveRule;
+import org.apache.samoa.learners.classifiers.rules.common.Perceptron;
+import org.apache.samoa.learners.classifiers.rules.common.RuleActiveRegressionNode;
+import org.apache.samoa.moa.classifiers.rules.core.attributeclassobservers.FIMTDDNumericAttributeClassLimitObserver;
+import org.apache.samoa.moa.classifiers.rules.core.voting.ErrorWeightedVote;
+import org.apache.samoa.topology.Stream;
 
 /**
  * AMRules Regressor Processor is the main (and only) processor for AMRulesRegressor task. It is adapted from the
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/ActiveRule.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/ActiveRule.java
similarity index 92%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/ActiveRule.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/ActiveRule.java
index 423de09..d233af0 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/ActiveRule.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/ActiveRule.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.rules.common;
+package org.apache.samoa.learners.classifiers.rules.common;
 
 /*
  * #%L
@@ -22,10 +22,10 @@
 
 import java.io.Serializable;
 
-import com.yahoo.labs.samoa.moa.classifiers.core.conditionaltests.InstanceConditionalTest;
-import com.yahoo.labs.samoa.moa.classifiers.core.conditionaltests.NumericAttributeBinaryTest;
-import com.yahoo.labs.samoa.moa.classifiers.rules.core.attributeclassobservers.FIMTDDNumericAttributeClassLimitObserver;
-import com.yahoo.labs.samoa.moa.classifiers.rules.core.conditionaltests.NumericAttributeBinaryRulePredicate;
+import org.apache.samoa.moa.classifiers.core.conditionaltests.InstanceConditionalTest;
+import org.apache.samoa.moa.classifiers.core.conditionaltests.NumericAttributeBinaryTest;
+import org.apache.samoa.moa.classifiers.rules.core.attributeclassobservers.FIMTDDNumericAttributeClassLimitObserver;
+import org.apache.samoa.moa.classifiers.rules.core.conditionaltests.NumericAttributeBinaryRulePredicate;
 
 /**
  * ActiveRule is a LearningRule that actively update its LearningNode with incoming instances.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/LearningRule.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/LearningRule.java
similarity index 93%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/LearningRule.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/LearningRule.java
index 5ad7d76..5c41215 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/LearningRule.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/LearningRule.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.rules.common;
+package org.apache.samoa.learners.classifiers.rules.common;
 
 /*
  * #%L
@@ -20,9 +20,9 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.moa.core.DoubleVector;
-import com.yahoo.labs.samoa.moa.core.StringUtils;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.moa.core.DoubleVector;
+import org.apache.samoa.moa.core.StringUtils;
 
 /**
  * Rule with LearningNode (statistical data).
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/NonLearningRule.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/NonLearningRule.java
similarity index 95%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/NonLearningRule.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/NonLearningRule.java
index 4b1a6b4..9069bd4 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/NonLearningRule.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/NonLearningRule.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.rules.common;
+package org.apache.samoa.learners.classifiers.rules.common;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/PassiveRule.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/PassiveRule.java
similarity index 96%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/PassiveRule.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/PassiveRule.java
index 50dd7d4..f5309a7 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/PassiveRule.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/PassiveRule.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.rules.common;
+package org.apache.samoa.learners.classifiers.rules.common;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/Perceptron.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/Perceptron.java
similarity index 97%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/Perceptron.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/Perceptron.java
index 925b3e5..1b6c9d2 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/Perceptron.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/Perceptron.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.rules.common;
+package org.apache.samoa.learners.classifiers.rules.common;
 
 /*
  * #%L
@@ -22,15 +22,16 @@
 
 import java.io.Serializable;
 
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.moa.classifiers.AbstractClassifier;
+import org.apache.samoa.moa.classifiers.Regressor;
+import org.apache.samoa.moa.core.DoubleVector;
+import org.apache.samoa.moa.core.Measurement;
+
 import com.esotericsoftware.kryo.Kryo;
 import com.esotericsoftware.kryo.Serializer;
 import com.esotericsoftware.kryo.io.Input;
 import com.esotericsoftware.kryo.io.Output;
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.moa.classifiers.AbstractClassifier;
-import com.yahoo.labs.samoa.moa.classifiers.Regressor;
-import com.yahoo.labs.samoa.moa.core.DoubleVector;
-import com.yahoo.labs.samoa.moa.core.Measurement;
 
 /**
  * Prediction scheme using Perceptron: Predictions are computed according to a linear function of the attributes.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/Rule.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/Rule.java
similarity index 91%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/Rule.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/Rule.java
index 1230ac5..971f00f 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/Rule.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/Rule.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.rules.common;
+package org.apache.samoa.learners.classifiers.rules.common;
 
 /*
  * #%L
@@ -23,9 +23,9 @@
 import java.util.LinkedList;
 import java.util.List;
 
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.moa.AbstractMOAObject;
-import com.yahoo.labs.samoa.moa.classifiers.rules.core.conditionaltests.NumericAttributeBinaryRulePredicate;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.moa.AbstractMOAObject;
+import org.apache.samoa.moa.classifiers.rules.core.conditionaltests.NumericAttributeBinaryRulePredicate;
 
 /**
  * The base class for "rule". Represents the most basic rule with and ID and a list of features (nodeList).
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/RuleActiveLearningNode.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/RuleActiveLearningNode.java
similarity index 93%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/RuleActiveLearningNode.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/RuleActiveLearningNode.java
index 2c42b94..f934c17 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/RuleActiveLearningNode.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/RuleActiveLearningNode.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.rules.common;
+package org.apache.samoa.learners.classifiers.rules.common;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/RuleActiveRegressionNode.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/RuleActiveRegressionNode.java
similarity index 92%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/RuleActiveRegressionNode.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/RuleActiveRegressionNode.java
index ecaffc3..11df518 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/RuleActiveRegressionNode.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/RuleActiveRegressionNode.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.rules.common;
+package org.apache.samoa.learners.classifiers.rules.common;
 
 /*
  * #%L
@@ -24,17 +24,17 @@
 import java.util.LinkedList;
 import java.util.List;
 
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.moa.core.AutoExpandVector;
-import com.yahoo.labs.samoa.moa.core.DoubleVector;
-import com.yahoo.labs.samoa.moa.classifiers.core.AttributeSplitSuggestion;
-import com.yahoo.labs.samoa.moa.classifiers.core.attributeclassobservers.AttributeClassObserver;
-import com.yahoo.labs.samoa.moa.classifiers.core.attributeclassobservers.FIMTDDNumericAttributeClassObserver;
-import com.yahoo.labs.samoa.moa.classifiers.core.splitcriteria.SplitCriterion;
-import com.yahoo.labs.samoa.moa.classifiers.rules.core.attributeclassobservers.FIMTDDNumericAttributeClassLimitObserver;
-import com.yahoo.labs.samoa.moa.classifiers.rules.core.splitcriteria.SDRSplitCriterionAMRules;
-import com.yahoo.labs.samoa.moa.classifiers.rules.driftdetection.PageHinkleyFading;
-import com.yahoo.labs.samoa.moa.classifiers.rules.driftdetection.PageHinkleyTest;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.moa.classifiers.core.AttributeSplitSuggestion;
+import org.apache.samoa.moa.classifiers.core.attributeclassobservers.AttributeClassObserver;
+import org.apache.samoa.moa.classifiers.core.attributeclassobservers.FIMTDDNumericAttributeClassObserver;
+import org.apache.samoa.moa.classifiers.core.splitcriteria.SplitCriterion;
+import org.apache.samoa.moa.classifiers.rules.core.attributeclassobservers.FIMTDDNumericAttributeClassLimitObserver;
+import org.apache.samoa.moa.classifiers.rules.core.splitcriteria.SDRSplitCriterionAMRules;
+import org.apache.samoa.moa.classifiers.rules.driftdetection.PageHinkleyFading;
+import org.apache.samoa.moa.classifiers.rules.driftdetection.PageHinkleyTest;
+import org.apache.samoa.moa.core.AutoExpandVector;
+import org.apache.samoa.moa.core.DoubleVector;
 
 /**
  * LearningNode for regression rule that updates both statistics for expanding rule and computing predictions.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/RulePassiveLearningNode.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/RulePassiveLearningNode.java
similarity index 93%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/RulePassiveLearningNode.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/RulePassiveLearningNode.java
index 6fb99db..c956fb6 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/RulePassiveLearningNode.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/RulePassiveLearningNode.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.rules.common;
+package org.apache.samoa.learners.classifiers.rules.common;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/RulePassiveRegressionNode.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/RulePassiveRegressionNode.java
similarity index 93%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/RulePassiveRegressionNode.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/RulePassiveRegressionNode.java
index 0923bbd..25d634e 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/RulePassiveRegressionNode.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/RulePassiveRegressionNode.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.rules.common;
+package org.apache.samoa.learners.classifiers.rules.common;
 
 /*
  * #%L
@@ -20,8 +20,8 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.moa.core.DoubleVector;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.moa.core.DoubleVector;
 
 /**
  * LearningNode for regression rule that does not update statistics for expanding rule. It only updates statistics for
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/RuleRegressionNode.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/RuleRegressionNode.java
similarity index 97%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/RuleRegressionNode.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/RuleRegressionNode.java
index fbb4b33..512ebab 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/RuleRegressionNode.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/RuleRegressionNode.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.rules.common;
+package org.apache.samoa.learners.classifiers.rules.common;
 
 /*
  * #%L
@@ -22,8 +22,8 @@
 
 import java.io.Serializable;
 
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.moa.core.DoubleVector;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.moa.core.DoubleVector;
 
 /**
  * The base class for LearningNode for regression rule.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/RuleSplitNode.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/RuleSplitNode.java
similarity index 78%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/RuleSplitNode.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/RuleSplitNode.java
index c9bccd3..afb5b4e 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/RuleSplitNode.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/RuleSplitNode.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.rules.common;
+package org.apache.samoa.learners.classifiers.rules.common;
 
 /*
  * #%L
@@ -20,11 +20,11 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.classifiers.core.conditionaltests.InstanceConditionalTest;
-import com.yahoo.labs.samoa.moa.classifiers.rules.core.Predicate;
-import com.yahoo.labs.samoa.moa.classifiers.rules.core.conditionaltests.NumericAttributeBinaryRulePredicate;
-import com.yahoo.labs.samoa.learners.classifiers.trees.SplitNode;
-import com.yahoo.labs.samoa.instances.Instance;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.learners.classifiers.trees.SplitNode;
+import org.apache.samoa.moa.classifiers.core.conditionaltests.InstanceConditionalTest;
+import org.apache.samoa.moa.classifiers.rules.core.Predicate;
+import org.apache.samoa.moa.classifiers.rules.core.conditionaltests.NumericAttributeBinaryRulePredicate;
 
 /**
  * Represent a feature of rules (an element of ruleś nodeList).
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/TargetMean.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/TargetMean.java
similarity index 94%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/TargetMean.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/TargetMean.java
index 2469b33..a76d85b 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/common/TargetMean.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/common/TargetMean.java
@@ -17,7 +17,7 @@
  *    
  *    
  */
-package com.yahoo.labs.samoa.learners.classifiers.rules.common;
+package org.apache.samoa.learners.classifiers.rules.common;
 
 /*
  * #%L
@@ -46,16 +46,17 @@
  * 
  *  */
 
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.moa.classifiers.AbstractClassifier;
+import org.apache.samoa.moa.classifiers.Regressor;
+import org.apache.samoa.moa.core.Measurement;
+import org.apache.samoa.moa.core.StringUtils;
+
 import com.esotericsoftware.kryo.Kryo;
 import com.esotericsoftware.kryo.Serializer;
 import com.esotericsoftware.kryo.io.Input;
 import com.esotericsoftware.kryo.io.Output;
 import com.github.javacliparser.FloatOption;
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.moa.classifiers.AbstractClassifier;
-import com.yahoo.labs.samoa.moa.classifiers.Regressor;
-import com.yahoo.labs.samoa.moa.core.Measurement;
-import com.yahoo.labs.samoa.moa.core.StringUtils;
 
 public class TargetMean extends AbstractClassifier implements Regressor {
 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/distributed/AMRDefaultRuleProcessor.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/distributed/AMRDefaultRuleProcessor.java
similarity index 92%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/distributed/AMRDefaultRuleProcessor.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/distributed/AMRDefaultRuleProcessor.java
index 04ca566..9f2b9c2 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/distributed/AMRDefaultRuleProcessor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/distributed/AMRDefaultRuleProcessor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.rules.distributed;
+package org.apache.samoa.learners.classifiers.rules.distributed;
 
 /*
  * #%L
@@ -20,21 +20,20 @@
  * #L%
  */
 
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.learners.InstanceContentEvent;
+import org.apache.samoa.learners.ResultContentEvent;
+import org.apache.samoa.learners.classifiers.rules.common.ActiveRule;
+import org.apache.samoa.learners.classifiers.rules.common.Perceptron;
+import org.apache.samoa.learners.classifiers.rules.common.RuleActiveRegressionNode;
+import org.apache.samoa.moa.classifiers.rules.core.attributeclassobservers.FIMTDDNumericAttributeClassLimitObserver;
+import org.apache.samoa.topology.Stream;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.learners.InstanceContentEvent;
-import com.yahoo.labs.samoa.learners.ResultContentEvent;
-import com.yahoo.labs.samoa.learners.classifiers.rules.common.ActiveRule;
-import com.yahoo.labs.samoa.learners.classifiers.rules.common.Perceptron;
-import com.yahoo.labs.samoa.learners.classifiers.rules.common.RuleActiveRegressionNode;
-import com.yahoo.labs.samoa.moa.classifiers.rules.core.attributeclassobservers.FIMTDDNumericAttributeClassLimitObserver;
-import com.yahoo.labs.samoa.topology.Stream;
-
 /**
  * Default Rule Learner Processor (HAMR).
  * 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/distributed/AMRLearnerProcessor.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/distributed/AMRLearnerProcessor.java
similarity index 91%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/distributed/AMRLearnerProcessor.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/distributed/AMRLearnerProcessor.java
index 4308318..a718945 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/distributed/AMRLearnerProcessor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/distributed/AMRLearnerProcessor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.rules.distributed;
+package org.apache.samoa.learners.classifiers.rules.distributed;
 
 /*
  * #%L
@@ -24,20 +24,19 @@
 import java.util.LinkedList;
 import java.util.List;
 
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.learners.classifiers.rules.common.ActiveRule;
+import org.apache.samoa.learners.classifiers.rules.common.LearningRule;
+import org.apache.samoa.learners.classifiers.rules.common.RuleActiveRegressionNode;
+import org.apache.samoa.learners.classifiers.rules.common.RulePassiveRegressionNode;
+import org.apache.samoa.learners.classifiers.rules.common.RuleSplitNode;
+import org.apache.samoa.topology.Stream;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.learners.classifiers.rules.common.ActiveRule;
-import com.yahoo.labs.samoa.learners.classifiers.rules.common.LearningRule;
-import com.yahoo.labs.samoa.learners.classifiers.rules.common.RuleActiveRegressionNode;
-import com.yahoo.labs.samoa.learners.classifiers.rules.common.RulePassiveRegressionNode;
-import com.yahoo.labs.samoa.learners.classifiers.rules.common.RuleSplitNode;
-import com.yahoo.labs.samoa.topology.Stream;
-
 /**
  * Learner Processor (HAMR).
  * 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/distributed/AMRRuleSetProcessor.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/distributed/AMRRuleSetProcessor.java
similarity index 91%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/distributed/AMRRuleSetProcessor.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/distributed/AMRRuleSetProcessor.java
index 5e83338..bf43ad0 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/distributed/AMRRuleSetProcessor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/distributed/AMRRuleSetProcessor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.rules.distributed;
+package org.apache.samoa.learners.classifiers.rules.distributed;
 
 /*
  * #%L
@@ -20,21 +20,22 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.learners.InstanceContentEvent;
-import com.yahoo.labs.samoa.learners.ResultContentEvent;
-import com.yahoo.labs.samoa.learners.classifiers.rules.common.ActiveRule;
-import com.yahoo.labs.samoa.learners.classifiers.rules.common.LearningRule;
-import com.yahoo.labs.samoa.learners.classifiers.rules.common.PassiveRule;
-import com.yahoo.labs.samoa.moa.classifiers.rules.core.voting.ErrorWeightedVote;
-import com.yahoo.labs.samoa.moa.classifiers.rules.core.voting.InverseErrorWeightedVote;
-import com.yahoo.labs.samoa.moa.classifiers.rules.core.voting.UniformWeightedVote;
-import com.yahoo.labs.samoa.topology.Stream;
 import java.util.LinkedList;
 import java.util.List;
+
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.learners.InstanceContentEvent;
+import org.apache.samoa.learners.ResultContentEvent;
+import org.apache.samoa.learners.classifiers.rules.common.ActiveRule;
+import org.apache.samoa.learners.classifiers.rules.common.LearningRule;
+import org.apache.samoa.learners.classifiers.rules.common.PassiveRule;
+import org.apache.samoa.moa.classifiers.rules.core.voting.ErrorWeightedVote;
+import org.apache.samoa.moa.classifiers.rules.core.voting.InverseErrorWeightedVote;
+import org.apache.samoa.moa.classifiers.rules.core.voting.UniformWeightedVote;
+import org.apache.samoa.topology.Stream;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -89,7 +90,7 @@
   /*
    * (non-Javadoc)
    * 
-   * @see com.yahoo.labs.samoa.core.Processor#process(com.yahoo.labs.samoa.core.
+   * @see org.apache.samoa.core.Processor#process(org.apache.samoa.core.
    * ContentEvent)
    */
   @Override
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/distributed/AMRulesAggregatorProcessor.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/distributed/AMRulesAggregatorProcessor.java
similarity index 92%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/distributed/AMRulesAggregatorProcessor.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/distributed/AMRulesAggregatorProcessor.java
index 176afce..2131db4 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/distributed/AMRulesAggregatorProcessor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/distributed/AMRulesAggregatorProcessor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.rules.distributed;
+package org.apache.samoa.learners.classifiers.rules.distributed;
 
 /*
  * #%L
@@ -24,26 +24,25 @@
 import java.util.LinkedList;
 import java.util.List;
 
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.learners.InstanceContentEvent;
+import org.apache.samoa.learners.ResultContentEvent;
+import org.apache.samoa.learners.classifiers.rules.common.ActiveRule;
+import org.apache.samoa.learners.classifiers.rules.common.LearningRule;
+import org.apache.samoa.learners.classifiers.rules.common.PassiveRule;
+import org.apache.samoa.learners.classifiers.rules.common.Perceptron;
+import org.apache.samoa.learners.classifiers.rules.common.RuleActiveRegressionNode;
+import org.apache.samoa.moa.classifiers.rules.core.attributeclassobservers.FIMTDDNumericAttributeClassLimitObserver;
+import org.apache.samoa.moa.classifiers.rules.core.voting.ErrorWeightedVote;
+import org.apache.samoa.moa.classifiers.rules.core.voting.InverseErrorWeightedVote;
+import org.apache.samoa.moa.classifiers.rules.core.voting.UniformWeightedVote;
+import org.apache.samoa.topology.Stream;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.learners.InstanceContentEvent;
-import com.yahoo.labs.samoa.learners.ResultContentEvent;
-import com.yahoo.labs.samoa.learners.classifiers.rules.common.ActiveRule;
-import com.yahoo.labs.samoa.learners.classifiers.rules.common.LearningRule;
-import com.yahoo.labs.samoa.learners.classifiers.rules.common.PassiveRule;
-import com.yahoo.labs.samoa.learners.classifiers.rules.common.Perceptron;
-import com.yahoo.labs.samoa.learners.classifiers.rules.common.RuleActiveRegressionNode;
-import com.yahoo.labs.samoa.moa.classifiers.rules.core.attributeclassobservers.FIMTDDNumericAttributeClassLimitObserver;
-import com.yahoo.labs.samoa.moa.classifiers.rules.core.voting.ErrorWeightedVote;
-import com.yahoo.labs.samoa.moa.classifiers.rules.core.voting.InverseErrorWeightedVote;
-import com.yahoo.labs.samoa.moa.classifiers.rules.core.voting.UniformWeightedVote;
-import com.yahoo.labs.samoa.topology.Stream;
-
 /**
  * Model Aggregator Processor (VAMR).
  * 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/distributed/AMRulesStatisticsProcessor.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/distributed/AMRulesStatisticsProcessor.java
similarity index 90%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/distributed/AMRulesStatisticsProcessor.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/distributed/AMRulesStatisticsProcessor.java
index 6c5d25b..86fae3c 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/distributed/AMRulesStatisticsProcessor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/distributed/AMRulesStatisticsProcessor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.rules.distributed;
+package org.apache.samoa.learners.classifiers.rules.distributed;
 
 /*
  * #%L
@@ -24,19 +24,18 @@
 import java.util.LinkedList;
 import java.util.List;
 
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.learners.classifiers.rules.common.ActiveRule;
+import org.apache.samoa.learners.classifiers.rules.common.RuleActiveRegressionNode;
+import org.apache.samoa.learners.classifiers.rules.common.RulePassiveRegressionNode;
+import org.apache.samoa.learners.classifiers.rules.common.RuleSplitNode;
+import org.apache.samoa.topology.Stream;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.learners.classifiers.rules.common.ActiveRule;
-import com.yahoo.labs.samoa.learners.classifiers.rules.common.RuleActiveRegressionNode;
-import com.yahoo.labs.samoa.learners.classifiers.rules.common.RulePassiveRegressionNode;
-import com.yahoo.labs.samoa.learners.classifiers.rules.common.RuleSplitNode;
-import com.yahoo.labs.samoa.topology.Stream;
-
 /**
  * Learner Processor (VAMR).
  * 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/distributed/AssignmentContentEvent.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/distributed/AssignmentContentEvent.java
similarity index 90%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/distributed/AssignmentContentEvent.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/distributed/AssignmentContentEvent.java
index 2a53f19..0c603f8 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/distributed/AssignmentContentEvent.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/distributed/AssignmentContentEvent.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.rules.distributed;
+package org.apache.samoa.learners.classifiers.rules.distributed;
 
 /*
  * #%L
@@ -20,8 +20,8 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.instances.Instance;
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.instances.Instance;
 
 /**
  * Forwarded instances from Model Agrregator to Learners/Default Rule Learner.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/distributed/PredicateContentEvent.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/distributed/PredicateContentEvent.java
similarity index 86%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/distributed/PredicateContentEvent.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/distributed/PredicateContentEvent.java
index 881a284..00d7eb8 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/distributed/PredicateContentEvent.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/distributed/PredicateContentEvent.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.rules.distributed;
+package org.apache.samoa.learners.classifiers.rules.distributed;
 
 /*
  * #%L
@@ -20,9 +20,9 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.learners.classifiers.rules.common.RulePassiveRegressionNode;
-import com.yahoo.labs.samoa.learners.classifiers.rules.common.RuleSplitNode;
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.learners.classifiers.rules.common.RulePassiveRegressionNode;
+import org.apache.samoa.learners.classifiers.rules.common.RuleSplitNode;
 
 /**
  * New features (of newly expanded rules) from Learners to Model Aggregators.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/distributed/RuleContentEvent.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/distributed/RuleContentEvent.java
similarity index 90%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/distributed/RuleContentEvent.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/distributed/RuleContentEvent.java
index dbe2c5b..5209b52 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/rules/distributed/RuleContentEvent.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/rules/distributed/RuleContentEvent.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.rules.distributed;
+package org.apache.samoa.learners.classifiers.rules.distributed;
 
 /*
  * #%L
@@ -20,8 +20,8 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.learners.classifiers.rules.common.ActiveRule;
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.learners.classifiers.rules.common.ActiveRule;
 
 /**
  * New rule from Model Aggregator/Default Rule Learner to Learners or removed rule from Learner to Model Aggregators.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/ActiveLearningNode.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/ActiveLearningNode.java
similarity index 97%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/ActiveLearningNode.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/ActiveLearningNode.java
index 90e1c67..860b951 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/ActiveLearningNode.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/ActiveLearningNode.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.trees;
+package org.apache.samoa.learners.classifiers.trees;
 
 /*
  * #%L
@@ -23,13 +23,11 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import com.yahoo.labs.samoa.moa.classifiers.core.AttributeSplitSuggestion;
-
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.moa.classifiers.core.AttributeSplitSuggestion;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.yahoo.labs.samoa.instances.Instance;
-
 final class ActiveLearningNode extends LearningNode {
   /**
 	 * 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/AttributeBatchContentEvent.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/AttributeBatchContentEvent.java
similarity index 96%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/AttributeBatchContentEvent.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/AttributeBatchContentEvent.java
index 55aac58..8973de1 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/AttributeBatchContentEvent.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/AttributeBatchContentEvent.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.trees;
+package org.apache.samoa.learners.classifiers.trees;
 
 /*
  * #%L
@@ -20,10 +20,11 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.core.ContentEvent;
 import java.util.LinkedList;
 import java.util.List;
 
+import org.apache.samoa.core.ContentEvent;
+
 /**
  * Attribute Content Event represents the instances that split vertically based on their attribute
  * 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/AttributeContentEvent.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/AttributeContentEvent.java
similarity index 97%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/AttributeContentEvent.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/AttributeContentEvent.java
index 090de75..9976599 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/AttributeContentEvent.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/AttributeContentEvent.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.trees;
+package org.apache.samoa.learners.classifiers.trees;
 
 /*
  * #%L
@@ -20,13 +20,13 @@
  * #L%
  */
 
+import org.apache.samoa.core.ContentEvent;
+
 import com.esotericsoftware.kryo.Kryo;
 import com.esotericsoftware.kryo.Serializer;
 import com.esotericsoftware.kryo.io.Input;
 import com.esotericsoftware.kryo.io.Output;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-
 /**
  * Attribute Content Event represents the instances that split vertically based on their attribute
  * 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/ComputeContentEvent.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/ComputeContentEvent.java
similarity index 98%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/ComputeContentEvent.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/ComputeContentEvent.java
index 52591e1..fe56cc1 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/ComputeContentEvent.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/ComputeContentEvent.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.trees;
+package org.apache.samoa.learners.classifiers.trees;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/ControlContentEvent.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/ControlContentEvent.java
similarity index 93%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/ControlContentEvent.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/ControlContentEvent.java
index a7f01ee..18d5f06 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/ControlContentEvent.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/ControlContentEvent.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.trees;
+package org.apache.samoa.learners.classifiers.trees;
 
 /*
  * #%L
@@ -20,7 +20,7 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.core.ContentEvent;
+import org.apache.samoa.core.ContentEvent;
 
 /**
  * Abstract class to represent ContentEvent to control Local Statistic Processor.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/DeleteContentEvent.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/DeleteContentEvent.java
similarity index 95%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/DeleteContentEvent.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/DeleteContentEvent.java
index bbdc39d..a834f2f 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/DeleteContentEvent.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/DeleteContentEvent.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.trees;
+package org.apache.samoa.learners.classifiers.trees;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/FilterProcessor.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/FilterProcessor.java
similarity index 90%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/FilterProcessor.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/FilterProcessor.java
index 179ccb4..0af8b93 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/FilterProcessor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/FilterProcessor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.trees;
+package org.apache.samoa.learners.classifiers.trees;
 
 /*
  * #%L
@@ -20,18 +20,18 @@
  * #L%
  */
 
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.instances.InstancesHeader;
+import org.apache.samoa.learners.InstanceContentEvent;
+import org.apache.samoa.learners.InstancesContentEvent;
+import org.apache.samoa.learners.ResultContentEvent;
+import org.apache.samoa.topology.Stream;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.learners.InstanceContentEvent;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.learners.ResultContentEvent;
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.instances.InstancesHeader;
-import com.yahoo.labs.samoa.learners.InstancesContentEvent;
-import com.yahoo.labs.samoa.topology.Stream;
 import java.util.LinkedList;
 import java.util.List;
 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/FoundNode.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/FoundNode.java
similarity index 96%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/FoundNode.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/FoundNode.java
index 575aaaf..c8522c8 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/FoundNode.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/FoundNode.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.trees;
+package org.apache.samoa.learners.classifiers.trees;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/InactiveLearningNode.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/InactiveLearningNode.java
similarity index 93%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/InactiveLearningNode.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/InactiveLearningNode.java
index f02383d..e4df577 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/InactiveLearningNode.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/InactiveLearningNode.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.trees;
+package org.apache.samoa.learners.classifiers.trees;
 
 /*
  * #%L
@@ -20,7 +20,7 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.instances.Instance;
+import org.apache.samoa.instances.Instance;
 
 /**
  * Class that represents inactive learning node. Inactive learning node is a node which only keeps track of the observed
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/LearningNode.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/LearningNode.java
similarity index 93%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/LearningNode.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/LearningNode.java
index 54dd4f3..9b0480c 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/LearningNode.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/LearningNode.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.trees;
+package org.apache.samoa.learners.classifiers.trees;
 
 /*
  * #%L
@@ -20,7 +20,7 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.instances.Instance;
+import org.apache.samoa.instances.Instance;
 
 /**
  * Abstract class that represents a learning node
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/LocalResultContentEvent.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/LocalResultContentEvent.java
similarity index 92%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/LocalResultContentEvent.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/LocalResultContentEvent.java
index c0cc78f..fc9f39c 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/LocalResultContentEvent.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/LocalResultContentEvent.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.trees;
+package org.apache.samoa.learners.classifiers.trees;
 
 /*
  * #%L
@@ -20,8 +20,8 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.classifiers.core.AttributeSplitSuggestion;
-import com.yahoo.labs.samoa.core.ContentEvent;
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.moa.classifiers.core.AttributeSplitSuggestion;
 
 /**
  * Local Result Content Event is the content event that represents local calculation of statistic in Local Statistic
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/LocalStatisticsProcessor.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/LocalStatisticsProcessor.java
similarity index 91%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/LocalStatisticsProcessor.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/LocalStatisticsProcessor.java
index 9d3ccbf..7ce46ec 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/LocalStatisticsProcessor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/LocalStatisticsProcessor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.trees;
+package org.apache.samoa.learners.classifiers.trees;
 
 /*
  * #%L
@@ -26,23 +26,21 @@
 import java.util.Map.Entry;
 import java.util.Vector;
 
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.moa.classifiers.core.AttributeSplitSuggestion;
+import org.apache.samoa.moa.classifiers.core.attributeclassobservers.AttributeClassObserver;
+import org.apache.samoa.moa.classifiers.core.attributeclassobservers.GaussianNumericAttributeClassObserver;
+import org.apache.samoa.moa.classifiers.core.attributeclassobservers.NominalAttributeClassObserver;
+import org.apache.samoa.moa.classifiers.core.splitcriteria.InfoGainSplitCriterion;
+import org.apache.samoa.moa.classifiers.core.splitcriteria.SplitCriterion;
+import org.apache.samoa.topology.Stream;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.yahoo.labs.samoa.moa.classifiers.core.AttributeSplitSuggestion;
-import com.yahoo.labs.samoa.moa.classifiers.core.attributeclassobservers.AttributeClassObserver;
-import com.yahoo.labs.samoa.moa.classifiers.core.attributeclassobservers.GaussianNumericAttributeClassObserver;
-import com.yahoo.labs.samoa.moa.classifiers.core.attributeclassobservers.NominalAttributeClassObserver;
-import com.yahoo.labs.samoa.moa.classifiers.core.splitcriteria.InfoGainSplitCriterion;
-import com.yahoo.labs.samoa.moa.classifiers.core.splitcriteria.SplitCriterion;
-
 import com.google.common.collect.HashBasedTable;
 import com.google.common.collect.Table;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.topology.Stream;
-
 /**
  * Local Statistic Processor contains the local statistic of a subset of the attributes.
  * 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/ModelAggregatorProcessor.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/ModelAggregatorProcessor.java
similarity index 96%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/ModelAggregatorProcessor.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/ModelAggregatorProcessor.java
index e5bdc0d..1e79f48 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/ModelAggregatorProcessor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/ModelAggregatorProcessor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.trees;
+package org.apache.samoa.learners.classifiers.trees;
 
 /*
  * #%L
@@ -33,24 +33,23 @@
 import java.util.concurrent.ScheduledFuture;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.instances.InstancesHeader;
+import org.apache.samoa.learners.InstanceContentEvent;
+import org.apache.samoa.learners.InstancesContentEvent;
+import org.apache.samoa.learners.ResultContentEvent;
+import org.apache.samoa.moa.classifiers.core.AttributeSplitSuggestion;
+import org.apache.samoa.moa.classifiers.core.driftdetection.ChangeDetector;
+import org.apache.samoa.moa.classifiers.core.splitcriteria.InfoGainSplitCriterion;
+import org.apache.samoa.moa.classifiers.core.splitcriteria.SplitCriterion;
+import org.apache.samoa.topology.Stream;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.instances.InstancesHeader;
-import com.yahoo.labs.samoa.learners.InstanceContentEvent;
-import com.yahoo.labs.samoa.learners.InstancesContentEvent;
-import com.yahoo.labs.samoa.learners.ResultContentEvent;
-import com.yahoo.labs.samoa.moa.classifiers.core.AttributeSplitSuggestion;
-import com.yahoo.labs.samoa.moa.classifiers.core.driftdetection.ChangeDetector;
-import com.yahoo.labs.samoa.moa.classifiers.core.splitcriteria.InfoGainSplitCriterion;
-import com.yahoo.labs.samoa.moa.classifiers.core.splitcriteria.SplitCriterion;
-import com.yahoo.labs.samoa.topology.Stream;
-
-import static com.yahoo.labs.samoa.moa.core.Utils.maxIndex;
+import static org.apache.samoa.moa.core.Utils.maxIndex;
 
 /**
  * Model Aggegator Processor consists of the decision tree model. It connects to local-statistic PI via attribute stream
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/Node.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/Node.java
similarity index 95%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/Node.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/Node.java
index f41c21d..898a433 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/Node.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/Node.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.trees;
+package org.apache.samoa.learners.classifiers.trees;
 
 /*
  * #%L
@@ -20,8 +20,8 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.core.DoubleVector;
-import com.yahoo.labs.samoa.instances.Instance;
+import org.apache.samoa.core.DoubleVector;
+import org.apache.samoa.instances.Instance;
 
 /**
  * Abstract class that represents a node in the tree model.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/SplitNode.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/SplitNode.java
similarity index 92%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/SplitNode.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/SplitNode.java
index c513dad..c2b1a47 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/SplitNode.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/SplitNode.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.trees;
+package org.apache.samoa.learners.classifiers.trees;
 
 /*
  * #%L
@@ -20,9 +20,9 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.classifiers.core.conditionaltests.InstanceConditionalTest;
-import com.yahoo.labs.samoa.moa.core.AutoExpandVector;
-import com.yahoo.labs.samoa.instances.Instance;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.moa.classifiers.core.conditionaltests.InstanceConditionalTest;
+import org.apache.samoa.moa.core.AutoExpandVector;
 
 /**
  * SplitNode represents the node that contains one or more questions in the decision tree model, in order to route the
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/VerticalHoeffdingTree.java b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/VerticalHoeffdingTree.java
similarity index 87%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/VerticalHoeffdingTree.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/VerticalHoeffdingTree.java
index 6131ec7..ea7e53d 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/classifiers/trees/VerticalHoeffdingTree.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/classifiers/trees/VerticalHoeffdingTree.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.classifiers.trees;
+package org.apache.samoa.learners.classifiers.trees;
 
 /*
  * #%L
@@ -21,24 +21,26 @@
  */
 
 import com.google.common.collect.ImmutableSet;
+
 import java.util.Set;
 
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.learners.AdaptiveLearner;
+import org.apache.samoa.learners.ClassificationLearner;
+import org.apache.samoa.moa.classifiers.core.attributeclassobservers.AttributeClassObserver;
+import org.apache.samoa.moa.classifiers.core.attributeclassobservers.DiscreteAttributeClassObserver;
+import org.apache.samoa.moa.classifiers.core.attributeclassobservers.NumericAttributeClassObserver;
+import org.apache.samoa.moa.classifiers.core.driftdetection.ChangeDetector;
+import org.apache.samoa.moa.classifiers.core.splitcriteria.SplitCriterion;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.topology.TopologyBuilder;
+
 import com.github.javacliparser.ClassOption;
 import com.github.javacliparser.Configurable;
 import com.github.javacliparser.FlagOption;
 import com.github.javacliparser.FloatOption;
 import com.github.javacliparser.IntOption;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.learners.AdaptiveLearner;
-import com.yahoo.labs.samoa.learners.ClassificationLearner;
-import com.yahoo.labs.samoa.moa.classifiers.core.attributeclassobservers.AttributeClassObserver;
-import com.yahoo.labs.samoa.moa.classifiers.core.attributeclassobservers.DiscreteAttributeClassObserver;
-import com.yahoo.labs.samoa.moa.classifiers.core.attributeclassobservers.NumericAttributeClassObserver;
-import com.yahoo.labs.samoa.moa.classifiers.core.driftdetection.ChangeDetector;
-import com.yahoo.labs.samoa.moa.classifiers.core.splitcriteria.SplitCriterion;
-import com.yahoo.labs.samoa.topology.Stream;
-import com.yahoo.labs.samoa.topology.TopologyBuilder;
 
 /**
  * Vertical Hoeffding Tree.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/clusterers/ClusteringContentEvent.java b/samoa-api/src/main/java/org/apache/samoa/learners/clusterers/ClusteringContentEvent.java
similarity index 92%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/clusterers/ClusteringContentEvent.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/clusterers/ClusteringContentEvent.java
index a7792e6..e7eb5b5 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/clusterers/ClusteringContentEvent.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/clusterers/ClusteringContentEvent.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.clusterers;
+package org.apache.samoa.learners.clusterers;
 
 /*
  * #%L
@@ -19,10 +19,10 @@
  * limitations under the License.
  * #L%
  */
-import net.jcip.annotations.Immutable;
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.instances.Instance;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.instances.Instance;
+import net.jcip.annotations.Immutable;
 
 /**
  * The Class ClusteringContentEvent.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/clusterers/ClustreamClustererAdapter.java b/samoa-api/src/main/java/org/apache/samoa/learners/clusterers/ClustreamClustererAdapter.java
similarity index 83%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/clusterers/ClustreamClustererAdapter.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/clusterers/ClustreamClustererAdapter.java
index 7c0f32b..e0c1cb3 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/clusterers/ClustreamClustererAdapter.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/clusterers/ClustreamClustererAdapter.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.clusterers;
+package org.apache.samoa.learners.clusterers;
 
 /*
  * #%L
@@ -22,13 +22,14 @@
 /**
  * License
  */
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.instances.InstancesHeader;
+import org.apache.samoa.moa.cluster.Clustering;
+import org.apache.samoa.moa.clusterers.clustream.Clustream;
+
 import com.github.javacliparser.ClassOption;
 import com.github.javacliparser.Configurable;
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.instances.InstancesHeader;
-import com.yahoo.labs.samoa.moa.cluster.Clustering;
-import com.yahoo.labs.samoa.moa.clusterers.clustream.Clustream;
 
 /**
  * 
@@ -43,11 +44,11 @@
   private static final long serialVersionUID = 4372366401338704353L;
 
   public ClassOption learnerOption = new ClassOption("learner", 'l',
-      "Clusterer to train.", com.yahoo.labs.samoa.moa.clusterers.Clusterer.class, Clustream.class.getName());
+      "Clusterer to train.", org.apache.samoa.moa.clusterers.Clusterer.class, Clustream.class.getName());
   /**
    * The learner.
    */
-  protected com.yahoo.labs.samoa.moa.clusterers.Clusterer learner;
+  protected org.apache.samoa.moa.clusterers.Clusterer learner;
 
   /**
    * The is init.
@@ -72,7 +73,7 @@
    * @param dataset
    *          the dataset
    */
-  public ClustreamClustererAdapter(com.yahoo.labs.samoa.moa.clusterers.Clusterer learner, Instances dataset) {
+  public ClustreamClustererAdapter(org.apache.samoa.moa.clusterers.Clusterer learner, Instances dataset) {
     this.learner = learner.copy();
     this.isInit = false;
     this.dataset = dataset;
@@ -87,7 +88,7 @@
    *          the dataset
    */
   public ClustreamClustererAdapter() {
-    this.learner = ((com.yahoo.labs.samoa.moa.clusterers.Clusterer) this.learnerOption.getValue()).copy();
+    this.learner = ((org.apache.samoa.moa.clusterers.Clusterer) this.learnerOption.getValue()).copy();
     this.isInit = false;
     // this.dataset = dataset;
   }
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/clusterers/LocalClustererAdapter.java b/samoa-api/src/main/java/org/apache/samoa/learners/clusterers/LocalClustererAdapter.java
similarity index 90%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/clusterers/LocalClustererAdapter.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/clusterers/LocalClustererAdapter.java
index 2cb017e..4a3e5e9 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/clusterers/LocalClustererAdapter.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/clusterers/LocalClustererAdapter.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.clusterers;
+package org.apache.samoa.learners.clusterers;
 
 /*
  * #%L
@@ -20,11 +20,12 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.moa.cluster.Clustering;
 import java.io.Serializable;
 
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.moa.cluster.Clustering;
+
 /**
  * Learner interface for non-distributed learners.
  * 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/clusterers/LocalClustererProcessor.java b/samoa-api/src/main/java/org/apache/samoa/learners/clusterers/LocalClustererProcessor.java
similarity index 90%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/clusterers/LocalClustererProcessor.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/clusterers/LocalClustererProcessor.java
index cf2b979..163184f 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/clusterers/LocalClustererProcessor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/clusterers/LocalClustererProcessor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.clusterers;
+package org.apache.samoa.learners.clusterers;
 
 /*
  * #%L
@@ -22,15 +22,15 @@
 /**
  * License
  */
-import com.yahoo.labs.samoa.evaluation.ClusteringEvaluationContentEvent;
-import com.yahoo.labs.samoa.evaluation.ClusteringResultContentEvent;
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.instances.DenseInstance;
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.moa.cluster.Clustering;
-import com.yahoo.labs.samoa.moa.core.DataPoint;
-import com.yahoo.labs.samoa.topology.Stream;
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.evaluation.ClusteringEvaluationContentEvent;
+import org.apache.samoa.evaluation.ClusteringResultContentEvent;
+import org.apache.samoa.instances.DenseInstance;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.moa.cluster.Clustering;
+import org.apache.samoa.moa.core.DataPoint;
+import org.apache.samoa.topology.Stream;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/clusterers/SingleLearner.java b/samoa-api/src/main/java/org/apache/samoa/learners/clusterers/SingleLearner.java
similarity index 89%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/clusterers/SingleLearner.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/clusterers/SingleLearner.java
index cbb706c..f6173f6 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/clusterers/SingleLearner.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/clusterers/SingleLearner.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.clusterers;
+package org.apache.samoa.learners.clusterers;
 
 /*
  * #%L
@@ -25,15 +25,17 @@
  */
 
 import com.google.common.collect.ImmutableSet;
+
 import java.util.Set;
 
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.learners.Learner;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.topology.TopologyBuilder;
+
 import com.github.javacliparser.ClassOption;
 import com.github.javacliparser.Configurable;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.learners.Learner;
-import com.yahoo.labs.samoa.topology.Stream;
-import com.yahoo.labs.samoa.topology.TopologyBuilder;
 
 /**
  * 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/clusterers/simple/ClusteringDistributorProcessor.java b/samoa-api/src/main/java/org/apache/samoa/learners/clusterers/simple/ClusteringDistributorProcessor.java
similarity index 87%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/clusterers/simple/ClusteringDistributorProcessor.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/clusterers/simple/ClusteringDistributorProcessor.java
index 44109e2..2b3e01c 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/clusterers/simple/ClusteringDistributorProcessor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/clusterers/simple/ClusteringDistributorProcessor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.clusterers.simple;
+package org.apache.samoa.learners.clusterers.simple;
 
 /*
  * #%L
@@ -22,12 +22,12 @@
 /**
  * License
  */
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.evaluation.ClusteringEvaluationContentEvent;
-import com.yahoo.labs.samoa.learners.clusterers.ClusteringContentEvent;
-import com.yahoo.labs.samoa.moa.core.DataPoint;
-import com.yahoo.labs.samoa.topology.Stream;
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.evaluation.ClusteringEvaluationContentEvent;
+import org.apache.samoa.learners.clusterers.ClusteringContentEvent;
+import org.apache.samoa.moa.core.DataPoint;
+import org.apache.samoa.topology.Stream;
 
 /**
  * The Class ClusteringDistributorPE.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/clusterers/simple/DistributedClusterer.java b/samoa-api/src/main/java/org/apache/samoa/learners/clusterers/simple/DistributedClusterer.java
similarity index 89%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/learners/clusterers/simple/DistributedClusterer.java
rename to samoa-api/src/main/java/org/apache/samoa/learners/clusterers/simple/DistributedClusterer.java
index dab039c..8f3537a 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/learners/clusterers/simple/DistributedClusterer.java
+++ b/samoa-api/src/main/java/org/apache/samoa/learners/clusterers/simple/DistributedClusterer.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.learners.clusterers.simple;
+package org.apache.samoa.learners.clusterers.simple;
 
 /*
  * #%L
@@ -25,18 +25,20 @@
  */
 
 import com.google.common.collect.ImmutableSet;
+
 import java.util.Set;
 
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.learners.Learner;
+import org.apache.samoa.learners.clusterers.*;
+import org.apache.samoa.topology.ProcessingItem;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.topology.TopologyBuilder;
+
 import com.github.javacliparser.ClassOption;
 import com.github.javacliparser.Configurable;
 import com.github.javacliparser.IntOption;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.learners.Learner;
-import com.yahoo.labs.samoa.learners.clusterers.*;
-import com.yahoo.labs.samoa.topology.ProcessingItem;
-import com.yahoo.labs.samoa.topology.Stream;
-import com.yahoo.labs.samoa.topology.TopologyBuilder;
 
 /**
  * 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/AbstractMOAObject.java b/samoa-api/src/main/java/org/apache/samoa/moa/AbstractMOAObject.java
similarity index 95%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/AbstractMOAObject.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/AbstractMOAObject.java
index f951bf3..2315fde 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/AbstractMOAObject.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/AbstractMOAObject.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa;
+package org.apache.samoa.moa;
 
 /*
  * #%L
@@ -20,7 +20,7 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.core.SerializeUtils;
+import org.apache.samoa.moa.core.SerializeUtils;
 
 //import moa.core.SizeOf;
 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/MOAObject.java b/samoa-api/src/main/java/org/apache/samoa/moa/MOAObject.java
similarity index 97%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/MOAObject.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/MOAObject.java
index 3a714c4..60fc28b 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/MOAObject.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/MOAObject.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa;
+package org.apache.samoa.moa;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/AbstractClassifier.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/AbstractClassifier.java
similarity index 94%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/AbstractClassifier.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/AbstractClassifier.java
index 295ae49..4ca4c0f 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/AbstractClassifier.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/AbstractClassifier.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers;
+package org.apache.samoa.moa.classifiers;
 
 /*
  * #%L
@@ -25,18 +25,19 @@
 import java.util.List;
 import java.util.Random;
 
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.InstancesHeader;
+import org.apache.samoa.moa.MOAObject;
+import org.apache.samoa.moa.core.Example;
+import org.apache.samoa.moa.core.Measurement;
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.core.StringUtils;
+import org.apache.samoa.moa.core.Utils;
+import org.apache.samoa.moa.learners.Learner;
+import org.apache.samoa.moa.options.AbstractOptionHandler;
+import org.apache.samoa.moa.tasks.TaskMonitor;
+
 import com.github.javacliparser.IntOption;
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.instances.InstancesHeader;
-import com.yahoo.labs.samoa.moa.MOAObject;
-import com.yahoo.labs.samoa.moa.core.Example;
-import com.yahoo.labs.samoa.moa.core.Measurement;
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.core.StringUtils;
-import com.yahoo.labs.samoa.moa.core.Utils;
-import com.yahoo.labs.samoa.moa.learners.Learner;
-import com.yahoo.labs.samoa.moa.options.AbstractOptionHandler;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
 
 public abstract class AbstractClassifier extends AbstractOptionHandler implements Classifier {
 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/Classifier.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/Classifier.java
similarity index 91%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/Classifier.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/Classifier.java
index d537e6b..cd40888 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/Classifier.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/Classifier.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers;
+package org.apache.samoa.moa.classifiers;
 
 /*
  * #%L
@@ -20,9 +20,9 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.moa.core.Example;
-import com.yahoo.labs.samoa.moa.learners.Learner;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.moa.core.Example;
+import org.apache.samoa.moa.learners.Learner;
 
 /**
  * Classifier interface for incremental classification models.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/Regressor.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/Regressor.java
similarity index 94%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/Regressor.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/Regressor.java
index 656a60c..5baf627 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/Regressor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/Regressor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers;
+package org.apache.samoa.moa.classifiers;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/AttributeSplitSuggestion.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/AttributeSplitSuggestion.java
similarity index 90%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/AttributeSplitSuggestion.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/AttributeSplitSuggestion.java
index 3178c40..2eeade5 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/AttributeSplitSuggestion.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/AttributeSplitSuggestion.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core;
+package org.apache.samoa.moa.classifiers.core;
 
 /*
  * #%L
@@ -20,8 +20,8 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.AbstractMOAObject;
-import com.yahoo.labs.samoa.moa.classifiers.core.conditionaltests.InstanceConditionalTest;
+import org.apache.samoa.moa.AbstractMOAObject;
+import org.apache.samoa.moa.classifiers.core.conditionaltests.InstanceConditionalTest;
 
 /**
  * Class for computing attribute split suggestions given a split test.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/AttributeClassObserver.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/AttributeClassObserver.java
similarity index 89%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/AttributeClassObserver.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/AttributeClassObserver.java
index 6566461..5efdf5d 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/AttributeClassObserver.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/AttributeClassObserver.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.attributeclassobservers;
+package org.apache.samoa.moa.classifiers.core.attributeclassobservers;
 
 /*
  * #%L
@@ -20,9 +20,9 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.classifiers.core.AttributeSplitSuggestion;
-import com.yahoo.labs.samoa.moa.classifiers.core.splitcriteria.SplitCriterion;
-import com.yahoo.labs.samoa.moa.options.OptionHandler;
+import org.apache.samoa.moa.classifiers.core.AttributeSplitSuggestion;
+import org.apache.samoa.moa.classifiers.core.splitcriteria.SplitCriterion;
+import org.apache.samoa.moa.options.OptionHandler;
 
 /**
  * Interface for observing the class data distribution for an attribute. This observer monitors the class distribution
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/BinaryTreeNumericAttributeClassObserver.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/BinaryTreeNumericAttributeClassObserver.java
similarity index 91%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/BinaryTreeNumericAttributeClassObserver.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/BinaryTreeNumericAttributeClassObserver.java
index 1e55aef..a638318 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/BinaryTreeNumericAttributeClassObserver.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/BinaryTreeNumericAttributeClassObserver.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.attributeclassobservers;
+package org.apache.samoa.moa.classifiers.core.attributeclassobservers;
 
 /*
  * #%L
@@ -21,13 +21,14 @@
  */
 
 import java.io.Serializable;
-import com.yahoo.labs.samoa.moa.classifiers.core.AttributeSplitSuggestion;
-import com.yahoo.labs.samoa.moa.classifiers.core.conditionaltests.NumericAttributeBinaryTest;
-import com.yahoo.labs.samoa.moa.classifiers.core.splitcriteria.SplitCriterion;
-import com.yahoo.labs.samoa.moa.core.DoubleVector;
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.options.AbstractOptionHandler;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
+
+import org.apache.samoa.moa.classifiers.core.AttributeSplitSuggestion;
+import org.apache.samoa.moa.classifiers.core.conditionaltests.NumericAttributeBinaryTest;
+import org.apache.samoa.moa.classifiers.core.splitcriteria.SplitCriterion;
+import org.apache.samoa.moa.core.DoubleVector;
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.options.AbstractOptionHandler;
+import org.apache.samoa.moa.tasks.TaskMonitor;
 
 /**
  * Class for observing the class data distribution for a numeric attribute using a binary tree. This observer monitors
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/BinaryTreeNumericAttributeClassObserverRegression.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/BinaryTreeNumericAttributeClassObserverRegression.java
similarity index 91%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/BinaryTreeNumericAttributeClassObserverRegression.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/BinaryTreeNumericAttributeClassObserverRegression.java
index 5f75038..f37ac80 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/BinaryTreeNumericAttributeClassObserverRegression.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/BinaryTreeNumericAttributeClassObserverRegression.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.attributeclassobservers;
+package org.apache.samoa.moa.classifiers.core.attributeclassobservers;
 
 /*
  * #%L
@@ -21,11 +21,12 @@
  */
 
 import java.io.Serializable;
-import com.yahoo.labs.samoa.moa.classifiers.core.AttributeSplitSuggestion;
-import com.yahoo.labs.samoa.moa.classifiers.core.splitcriteria.SplitCriterion;
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.options.AbstractOptionHandler;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
+
+import org.apache.samoa.moa.classifiers.core.AttributeSplitSuggestion;
+import org.apache.samoa.moa.classifiers.core.splitcriteria.SplitCriterion;
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.options.AbstractOptionHandler;
+import org.apache.samoa.moa.tasks.TaskMonitor;
 
 /**
  * Class for observing the class data distribution for a numeric attribute using a binary tree. This observer monitors
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/DiscreteAttributeClassObserver.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/DiscreteAttributeClassObserver.java
similarity index 93%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/DiscreteAttributeClassObserver.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/DiscreteAttributeClassObserver.java
index a7d0af7..bbf6194 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/DiscreteAttributeClassObserver.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/DiscreteAttributeClassObserver.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.attributeclassobservers;
+package org.apache.samoa.moa.classifiers.core.attributeclassobservers;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/FIMTDDNumericAttributeClassObserver.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/FIMTDDNumericAttributeClassObserver.java
similarity index 94%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/FIMTDDNumericAttributeClassObserver.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/FIMTDDNumericAttributeClassObserver.java
index aa745ce..d61d8c8 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/FIMTDDNumericAttributeClassObserver.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/FIMTDDNumericAttributeClassObserver.java
@@ -3,7 +3,7 @@
  * Contact: jgama@fep.up.pt
  */
 
-package com.yahoo.labs.samoa.moa.classifiers.core.attributeclassobservers;
+package org.apache.samoa.moa.classifiers.core.attributeclassobservers;
 
 /*
  * #%L
@@ -27,12 +27,12 @@
 
 import java.io.Serializable;
 
-import com.yahoo.labs.samoa.moa.classifiers.core.AttributeSplitSuggestion;
-import com.yahoo.labs.samoa.moa.classifiers.core.conditionaltests.NumericAttributeBinaryTest;
-import com.yahoo.labs.samoa.moa.classifiers.core.splitcriteria.SplitCriterion;
-import com.yahoo.labs.samoa.moa.core.DoubleVector;
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
+import org.apache.samoa.moa.classifiers.core.AttributeSplitSuggestion;
+import org.apache.samoa.moa.classifiers.core.conditionaltests.NumericAttributeBinaryTest;
+import org.apache.samoa.moa.classifiers.core.splitcriteria.SplitCriterion;
+import org.apache.samoa.moa.core.DoubleVector;
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.tasks.TaskMonitor;
 
 public class FIMTDDNumericAttributeClassObserver extends BinaryTreeNumericAttributeClassObserver implements
     NumericAttributeClassObserver {
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/GaussianNumericAttributeClassObserver.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/GaussianNumericAttributeClassObserver.java
similarity index 89%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/GaussianNumericAttributeClassObserver.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/GaussianNumericAttributeClassObserver.java
index 83ecbe0..0bd25da 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/GaussianNumericAttributeClassObserver.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/GaussianNumericAttributeClassObserver.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.attributeclassobservers;
+package org.apache.samoa.moa.classifiers.core.attributeclassobservers;
 
 /*
  * #%L
@@ -20,20 +20,20 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
-import com.yahoo.labs.samoa.moa.core.Utils;
-
 import java.util.Set;
 import java.util.TreeSet;
-import com.yahoo.labs.samoa.moa.classifiers.core.AttributeSplitSuggestion;
-import com.yahoo.labs.samoa.moa.classifiers.core.conditionaltests.NumericAttributeBinaryTest;
-import com.yahoo.labs.samoa.moa.classifiers.core.splitcriteria.SplitCriterion;
 
-import com.yahoo.labs.samoa.moa.core.AutoExpandVector;
-import com.yahoo.labs.samoa.moa.core.DoubleVector;
-import com.yahoo.labs.samoa.moa.core.GaussianEstimator;
-import com.yahoo.labs.samoa.moa.options.AbstractOptionHandler;
+import org.apache.samoa.moa.classifiers.core.AttributeSplitSuggestion;
+import org.apache.samoa.moa.classifiers.core.conditionaltests.NumericAttributeBinaryTest;
+import org.apache.samoa.moa.classifiers.core.splitcriteria.SplitCriterion;
+import org.apache.samoa.moa.core.AutoExpandVector;
+import org.apache.samoa.moa.core.DoubleVector;
+import org.apache.samoa.moa.core.GaussianEstimator;
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.core.Utils;
+import org.apache.samoa.moa.options.AbstractOptionHandler;
+import org.apache.samoa.moa.tasks.TaskMonitor;
+
 import com.github.javacliparser.IntOption;
 
 /**
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/GreenwaldKhannaNumericAttributeClassObserver.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/GreenwaldKhannaNumericAttributeClassObserver.java
similarity index 85%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/GreenwaldKhannaNumericAttributeClassObserver.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/GreenwaldKhannaNumericAttributeClassObserver.java
index 04d1232..e47d6c4 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/GreenwaldKhannaNumericAttributeClassObserver.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/GreenwaldKhannaNumericAttributeClassObserver.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.attributeclassobservers;
+package org.apache.samoa.moa.classifiers.core.attributeclassobservers;
 
 /*
  * #%L
@@ -20,18 +20,18 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.classifiers.core.AttributeSplitSuggestion;
-import com.yahoo.labs.samoa.moa.classifiers.core.conditionaltests.NumericAttributeBinaryTest;
-import com.yahoo.labs.samoa.moa.classifiers.core.splitcriteria.SplitCriterion;
-import com.yahoo.labs.samoa.moa.core.Utils;
+import org.apache.samoa.moa.classifiers.core.AttributeSplitSuggestion;
+import org.apache.samoa.moa.classifiers.core.conditionaltests.NumericAttributeBinaryTest;
+import org.apache.samoa.moa.classifiers.core.splitcriteria.SplitCriterion;
+import org.apache.samoa.moa.core.AutoExpandVector;
+import org.apache.samoa.moa.core.DoubleVector;
+import org.apache.samoa.moa.core.GreenwaldKhannaQuantileSummary;
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.core.Utils;
+import org.apache.samoa.moa.options.AbstractOptionHandler;
+import org.apache.samoa.moa.tasks.TaskMonitor;
 
-import com.yahoo.labs.samoa.moa.core.AutoExpandVector;
-import com.yahoo.labs.samoa.moa.core.DoubleVector;
-import com.yahoo.labs.samoa.moa.core.GreenwaldKhannaQuantileSummary;
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.options.AbstractOptionHandler;
 import com.github.javacliparser.IntOption;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
 
 /**
  * Class for observing the class data distribution for a numeric attribute using Greenwald and Khanna methodology. This
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/NominalAttributeClassObserver.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/NominalAttributeClassObserver.java
similarity index 88%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/NominalAttributeClassObserver.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/NominalAttributeClassObserver.java
index 159f4dc..40044d0 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/NominalAttributeClassObserver.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/NominalAttributeClassObserver.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.attributeclassobservers;
+package org.apache.samoa.moa.classifiers.core.attributeclassobservers;
 
 /*
  * #%L
@@ -20,17 +20,16 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.classifiers.core.AttributeSplitSuggestion;
-import com.yahoo.labs.samoa.moa.classifiers.core.conditionaltests.NominalAttributeBinaryTest;
-import com.yahoo.labs.samoa.moa.classifiers.core.conditionaltests.NominalAttributeMultiwayTest;
-import com.yahoo.labs.samoa.moa.classifiers.core.splitcriteria.SplitCriterion;
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
-import com.yahoo.labs.samoa.moa.core.Utils;
-
-import com.yahoo.labs.samoa.moa.core.AutoExpandVector;
-import com.yahoo.labs.samoa.moa.core.DoubleVector;
-import com.yahoo.labs.samoa.moa.options.AbstractOptionHandler;
+import org.apache.samoa.moa.classifiers.core.AttributeSplitSuggestion;
+import org.apache.samoa.moa.classifiers.core.conditionaltests.NominalAttributeBinaryTest;
+import org.apache.samoa.moa.classifiers.core.conditionaltests.NominalAttributeMultiwayTest;
+import org.apache.samoa.moa.classifiers.core.splitcriteria.SplitCriterion;
+import org.apache.samoa.moa.core.AutoExpandVector;
+import org.apache.samoa.moa.core.DoubleVector;
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.core.Utils;
+import org.apache.samoa.moa.options.AbstractOptionHandler;
+import org.apache.samoa.moa.tasks.TaskMonitor;
 
 /**
  * Class for observing the class data distribution for a nominal attribute. This observer monitors the class
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/NullAttributeClassObserver.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/NullAttributeClassObserver.java
similarity index 83%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/NullAttributeClassObserver.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/NullAttributeClassObserver.java
index ec5f83f..7889a73 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/NullAttributeClassObserver.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/NullAttributeClassObserver.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.attributeclassobservers;
+package org.apache.samoa.moa.classifiers.core.attributeclassobservers;
 
 /*
  * #%L
@@ -20,11 +20,11 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.classifiers.core.AttributeSplitSuggestion;
-import com.yahoo.labs.samoa.moa.classifiers.core.splitcriteria.SplitCriterion;
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.options.AbstractOptionHandler;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
+import org.apache.samoa.moa.classifiers.core.AttributeSplitSuggestion;
+import org.apache.samoa.moa.classifiers.core.splitcriteria.SplitCriterion;
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.options.AbstractOptionHandler;
+import org.apache.samoa.moa.tasks.TaskMonitor;
 
 /**
  * Class for observing the class data distribution for a null attribute. This method is used to disable the observation
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/NumericAttributeClassObserver.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/NumericAttributeClassObserver.java
similarity index 93%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/NumericAttributeClassObserver.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/NumericAttributeClassObserver.java
index 17f8bd5..0557bf1 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/NumericAttributeClassObserver.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/NumericAttributeClassObserver.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.attributeclassobservers;
+package org.apache.samoa.moa.classifiers.core.attributeclassobservers;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/VFMLNumericAttributeClassObserver.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/VFMLNumericAttributeClassObserver.java
similarity index 92%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/VFMLNumericAttributeClassObserver.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/VFMLNumericAttributeClassObserver.java
index c34e90d..1a62a6f 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/attributeclassobservers/VFMLNumericAttributeClassObserver.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/attributeclassobservers/VFMLNumericAttributeClassObserver.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.attributeclassobservers;
+package org.apache.samoa.moa.classifiers.core.attributeclassobservers;
 
 /*
  * #%L
@@ -20,20 +20,20 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.core.Utils;
-
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
-import com.yahoo.labs.samoa.moa.classifiers.core.AttributeSplitSuggestion;
-import com.yahoo.labs.samoa.moa.classifiers.core.conditionaltests.NumericAttributeBinaryTest;
-import com.yahoo.labs.samoa.moa.classifiers.core.splitcriteria.SplitCriterion;
 
-import com.yahoo.labs.samoa.moa.core.DoubleVector;
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.options.AbstractOptionHandler;
+import org.apache.samoa.moa.classifiers.core.AttributeSplitSuggestion;
+import org.apache.samoa.moa.classifiers.core.conditionaltests.NumericAttributeBinaryTest;
+import org.apache.samoa.moa.classifiers.core.splitcriteria.SplitCriterion;
+import org.apache.samoa.moa.core.DoubleVector;
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.core.Utils;
+import org.apache.samoa.moa.options.AbstractOptionHandler;
+import org.apache.samoa.moa.tasks.TaskMonitor;
+
 import com.github.javacliparser.IntOption;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
 
 /**
  * Class for observing the class data distribution for a numeric attribute as in VFML. Used in naive Bayes and decision
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/conditionaltests/InstanceConditionalBinaryTest.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/conditionaltests/InstanceConditionalBinaryTest.java
similarity index 93%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/conditionaltests/InstanceConditionalBinaryTest.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/conditionaltests/InstanceConditionalBinaryTest.java
index 5eee6af..5857ae2 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/conditionaltests/InstanceConditionalBinaryTest.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/conditionaltests/InstanceConditionalBinaryTest.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.conditionaltests;
+package org.apache.samoa.moa.classifiers.core.conditionaltests;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/conditionaltests/InstanceConditionalTest.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/conditionaltests/InstanceConditionalTest.java
similarity index 90%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/conditionaltests/InstanceConditionalTest.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/conditionaltests/InstanceConditionalTest.java
index cd83e50..1d228e0 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/conditionaltests/InstanceConditionalTest.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/conditionaltests/InstanceConditionalTest.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.conditionaltests;
+package org.apache.samoa.moa.classifiers.core.conditionaltests;
 
 /*
  * #%L
@@ -20,9 +20,9 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.AbstractMOAObject;
-import com.yahoo.labs.samoa.instances.InstancesHeader;
-import com.yahoo.labs.samoa.instances.Instance;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.InstancesHeader;
+import org.apache.samoa.moa.AbstractMOAObject;
 
 /**
  * Abstract conditional test for instances to use to split nodes in Hoeffding trees.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/conditionaltests/NominalAttributeBinaryTest.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/conditionaltests/NominalAttributeBinaryTest.java
similarity index 92%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/conditionaltests/NominalAttributeBinaryTest.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/conditionaltests/NominalAttributeBinaryTest.java
index e9de3a3..1190aaa 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/conditionaltests/NominalAttributeBinaryTest.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/conditionaltests/NominalAttributeBinaryTest.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.conditionaltests;
+package org.apache.samoa.moa.classifiers.core.conditionaltests;
 
 /*
  * #%L
@@ -20,8 +20,8 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.instances.InstancesHeader;
-import com.yahoo.labs.samoa.instances.Instance;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.InstancesHeader;
 
 /**
  * Nominal binary conditional test for instances to use to split nodes in Hoeffding trees.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/conditionaltests/NominalAttributeMultiwayTest.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/conditionaltests/NominalAttributeMultiwayTest.java
similarity index 91%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/conditionaltests/NominalAttributeMultiwayTest.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/conditionaltests/NominalAttributeMultiwayTest.java
index c581936..f4816a1 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/conditionaltests/NominalAttributeMultiwayTest.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/conditionaltests/NominalAttributeMultiwayTest.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.conditionaltests;
+package org.apache.samoa.moa.classifiers.core.conditionaltests;
 
 /*
  * #%L
@@ -20,8 +20,8 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.instances.InstancesHeader;
-import com.yahoo.labs.samoa.instances.Instance;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.InstancesHeader;
 
 /**
  * Nominal multi way conditional test for instances to use to split nodes in Hoeffding trees.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/conditionaltests/NumericAttributeBinaryTest.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/conditionaltests/NumericAttributeBinaryTest.java
similarity index 93%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/conditionaltests/NumericAttributeBinaryTest.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/conditionaltests/NumericAttributeBinaryTest.java
index 753b586..3552869 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/conditionaltests/NumericAttributeBinaryTest.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/conditionaltests/NumericAttributeBinaryTest.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.conditionaltests;
+package org.apache.samoa.moa.classifiers.core.conditionaltests;
 
 /*
  * #%L
@@ -20,8 +20,8 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.instances.InstancesHeader;
-import com.yahoo.labs.samoa.instances.Instance;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.InstancesHeader;
 
 /**
  * Numeric binary conditional test for instances to use to split nodes in Hoeffding trees.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/ADWIN.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/ADWIN.java
similarity index 98%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/ADWIN.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/ADWIN.java
index bf6d02f..38b774b 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/ADWIN.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/ADWIN.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.driftdetection;
+package org.apache.samoa.moa.classifiers.core.driftdetection;
 
 /*
  * #%L
@@ -20,7 +20,7 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.AbstractMOAObject;
+import org.apache.samoa.moa.AbstractMOAObject;
 
 /**
  * ADaptive sliding WINdow method. This method is a change detector and estimator. It keeps a variable-length window of
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/ADWINChangeDetector.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/ADWINChangeDetector.java
similarity index 91%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/ADWINChangeDetector.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/ADWINChangeDetector.java
index 472fad7..8410e6f 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/ADWINChangeDetector.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/ADWINChangeDetector.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.driftdetection;
+package org.apache.samoa.moa.classifiers.core.driftdetection;
 
 /*
  * #%L
@@ -20,9 +20,10 @@
  * #L%
  */
 
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.tasks.TaskMonitor;
+
 import com.github.javacliparser.FloatOption;
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
 
 /**
  * Drift detection method based in ADWIN. ADaptive sliding WINdow is a change detector and estimator. It keeps a
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/AbstractChangeDetector.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/AbstractChangeDetector.java
similarity index 96%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/AbstractChangeDetector.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/AbstractChangeDetector.java
index 5c0a387..da29c50 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/AbstractChangeDetector.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/AbstractChangeDetector.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.driftdetection;
+package org.apache.samoa.moa.classifiers.core.driftdetection;
 
 /*
  * #%L
@@ -20,7 +20,7 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.options.AbstractOptionHandler;
+import org.apache.samoa.moa.options.AbstractOptionHandler;
 
 /**
  * Abstract Change Detector. All change detectors in MOA extend this class.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/ChangeDetector.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/ChangeDetector.java
similarity index 95%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/ChangeDetector.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/ChangeDetector.java
index f2d8e2c..74660a5 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/ChangeDetector.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/ChangeDetector.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.driftdetection;
+package org.apache.samoa.moa.classifiers.core.driftdetection;
 
 /*
  * #%L
@@ -20,7 +20,7 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.options.OptionHandler;
+import org.apache.samoa.moa.options.OptionHandler;
 
 /**
  * Change Detector interface to implement methods that detects change.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/CusumDM.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/CusumDM.java
similarity index 93%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/CusumDM.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/CusumDM.java
index e7b7f23..051f74e 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/CusumDM.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/CusumDM.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.driftdetection;
+package org.apache.samoa.moa.classifiers.core.driftdetection;
 
 /*
  * #%L
@@ -20,10 +20,11 @@
  * #L%
  */
 
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.tasks.TaskMonitor;
+
 import com.github.javacliparser.FloatOption;
 import com.github.javacliparser.IntOption;
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
 
 /**
  * Drift detection method based in Cusum
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/DDM.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/DDM.java
similarity index 94%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/DDM.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/DDM.java
index c6410fc..9515657 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/DDM.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/DDM.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.driftdetection;
+package org.apache.samoa.moa.classifiers.core.driftdetection;
 
 /*
  * #%L
@@ -20,9 +20,10 @@
  * #L%
  */
 
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.tasks.TaskMonitor;
+
 import com.github.javacliparser.IntOption;
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
 
 /**
  * Drift detection method based in DDM method of Joao Gama SBIA 2004.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/EDDM.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/EDDM.java
similarity index 95%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/EDDM.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/EDDM.java
index 8db5625..736948c 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/EDDM.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/EDDM.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.driftdetection;
+package org.apache.samoa.moa.classifiers.core.driftdetection;
 
 /*
  * #%L
@@ -20,8 +20,8 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.tasks.TaskMonitor;
 
 /**
  * Drift detection method based in EDDM method of Manuel Baena et al.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/EWMAChartDM.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/EWMAChartDM.java
similarity index 94%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/EWMAChartDM.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/EWMAChartDM.java
index 264673c..05ab344 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/EWMAChartDM.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/EWMAChartDM.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.driftdetection;
+package org.apache.samoa.moa.classifiers.core.driftdetection;
 
 /*
  * #%L
@@ -20,10 +20,11 @@
  * #L%
  */
 
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.tasks.TaskMonitor;
+
 import com.github.javacliparser.FloatOption;
 import com.github.javacliparser.IntOption;
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
 
 /**
  * Drift detection method based in EWMA Charts of Ross, Adams, Tasoulis and Hand 2012
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/GeometricMovingAverageDM.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/GeometricMovingAverageDM.java
similarity index 93%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/GeometricMovingAverageDM.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/GeometricMovingAverageDM.java
index 0f05a51..d197d97 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/GeometricMovingAverageDM.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/GeometricMovingAverageDM.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.driftdetection;
+package org.apache.samoa.moa.classifiers.core.driftdetection;
 
 /*
  * #%L
@@ -20,10 +20,11 @@
  * #L%
  */
 
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.tasks.TaskMonitor;
+
 import com.github.javacliparser.FloatOption;
 import com.github.javacliparser.IntOption;
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
 
 /**
  * Drift detection method based in Geometric Moving Average Test
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/PageHinkleyDM.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/PageHinkleyDM.java
similarity index 94%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/PageHinkleyDM.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/PageHinkleyDM.java
index 4ebf2b8..08514b0 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/driftdetection/PageHinkleyDM.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/driftdetection/PageHinkleyDM.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.driftdetection;
+package org.apache.samoa.moa.classifiers.core.driftdetection;
 
 /*
  * #%L
@@ -20,10 +20,11 @@
  * #L%
  */
 
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.tasks.TaskMonitor;
+
 import com.github.javacliparser.FloatOption;
 import com.github.javacliparser.IntOption;
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
 
 /**
  * Drift detection method based in Page Hinkley Test.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/splitcriteria/GiniSplitCriterion.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/splitcriteria/GiniSplitCriterion.java
similarity index 89%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/splitcriteria/GiniSplitCriterion.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/splitcriteria/GiniSplitCriterion.java
index 8c230b9..a10319a 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/splitcriteria/GiniSplitCriterion.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/splitcriteria/GiniSplitCriterion.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.splitcriteria;
+package org.apache.samoa.moa.classifiers.core.splitcriteria;
 
 /*
  * #%L
@@ -20,10 +20,10 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.core.Utils;
-import com.yahoo.labs.samoa.moa.options.AbstractOptionHandler;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.core.Utils;
+import org.apache.samoa.moa.options.AbstractOptionHandler;
+import org.apache.samoa.moa.tasks.TaskMonitor;
 
 /**
  * Class for computing splitting criteria using Gini with respect to distributions of class values. The split criterion
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/splitcriteria/InfoGainSplitCriterion.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/splitcriteria/InfoGainSplitCriterion.java
similarity index 92%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/splitcriteria/InfoGainSplitCriterion.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/splitcriteria/InfoGainSplitCriterion.java
index 62fc9fa..4ee88cc 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/splitcriteria/InfoGainSplitCriterion.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/splitcriteria/InfoGainSplitCriterion.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.splitcriteria;
+package org.apache.samoa.moa.classifiers.core.splitcriteria;
 
 /*
  * #%L
@@ -20,11 +20,12 @@
  * #L%
  */
 
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.core.Utils;
+import org.apache.samoa.moa.options.AbstractOptionHandler;
+import org.apache.samoa.moa.tasks.TaskMonitor;
+
 import com.github.javacliparser.FloatOption;
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.core.Utils;
-import com.yahoo.labs.samoa.moa.options.AbstractOptionHandler;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
 
 /**
  * Class for computing splitting criteria using information gain with respect to distributions of class values. The
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/splitcriteria/InfoGainSplitCriterionMultilabel.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/splitcriteria/InfoGainSplitCriterionMultilabel.java
similarity index 93%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/splitcriteria/InfoGainSplitCriterionMultilabel.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/splitcriteria/InfoGainSplitCriterionMultilabel.java
index f60cd72..369dce1 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/splitcriteria/InfoGainSplitCriterionMultilabel.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/splitcriteria/InfoGainSplitCriterionMultilabel.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.splitcriteria;
+package org.apache.samoa.moa.classifiers.core.splitcriteria;
 
 /*
  * #%L
@@ -20,7 +20,7 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.core.Utils;
+import org.apache.samoa.moa.core.Utils;
 
 /**
  * Class for computing splitting criteria using information gain with respect to distributions of class values for
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/splitcriteria/SDRSplitCriterion.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/splitcriteria/SDRSplitCriterion.java
similarity index 93%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/splitcriteria/SDRSplitCriterion.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/splitcriteria/SDRSplitCriterion.java
index 6eba291..1e4f099 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/splitcriteria/SDRSplitCriterion.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/splitcriteria/SDRSplitCriterion.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.splitcriteria;
+package org.apache.samoa.moa.classifiers.core.splitcriteria;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/splitcriteria/SplitCriterion.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/splitcriteria/SplitCriterion.java
similarity index 93%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/splitcriteria/SplitCriterion.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/splitcriteria/SplitCriterion.java
index 0e0a04e..d97886a 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/splitcriteria/SplitCriterion.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/splitcriteria/SplitCriterion.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.splitcriteria;
+package org.apache.samoa.moa.classifiers.core.splitcriteria;
 
 /*
  * #%L
@@ -20,7 +20,7 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.options.OptionHandler;
+import org.apache.samoa.moa.options.OptionHandler;
 
 /**
  * Interface for computing splitting criteria. with respect to distributions of class values. The split criterion is
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/splitcriteria/VarianceReductionSplitCriterion.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/splitcriteria/VarianceReductionSplitCriterion.java
similarity index 91%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/splitcriteria/VarianceReductionSplitCriterion.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/splitcriteria/VarianceReductionSplitCriterion.java
index 33875b4..421c734 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/core/splitcriteria/VarianceReductionSplitCriterion.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/core/splitcriteria/VarianceReductionSplitCriterion.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.core.splitcriteria;
+package org.apache.samoa.moa.classifiers.core.splitcriteria;
 
 /*
  * #%L
@@ -20,9 +20,9 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.options.AbstractOptionHandler;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.options.AbstractOptionHandler;
+import org.apache.samoa.moa.tasks.TaskMonitor;
 
 public class VarianceReductionSplitCriterion extends AbstractOptionHandler implements SplitCriterion {
 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/functions/MajorityClass.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/functions/MajorityClass.java
similarity index 87%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/functions/MajorityClass.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/functions/MajorityClass.java
index f8cb325..8474d88 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/functions/MajorityClass.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/functions/MajorityClass.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.functions;
+package org.apache.samoa.moa.classifiers.functions;
 
 /*
  * #%L
@@ -20,11 +20,11 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.classifiers.AbstractClassifier;
-import com.yahoo.labs.samoa.moa.core.DoubleVector;
-import com.yahoo.labs.samoa.moa.core.Measurement;
-import com.yahoo.labs.samoa.moa.core.StringUtils;
-import com.yahoo.labs.samoa.instances.Instance;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.moa.classifiers.AbstractClassifier;
+import org.apache.samoa.moa.core.DoubleVector;
+import org.apache.samoa.moa.core.Measurement;
+import org.apache.samoa.moa.core.StringUtils;
 
 /**
  * Majority class learner. This is the simplest classifier.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/core/Predicate.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/core/Predicate.java
similarity index 88%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/core/Predicate.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/core/Predicate.java
index 995dd05..a744897 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/core/Predicate.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/core/Predicate.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.rules.core;
+package org.apache.samoa.moa.classifiers.rules.core;
 
 /*
  * #%L
@@ -20,7 +20,7 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.instances.Instance;
+import org.apache.samoa.instances.Instance;
 
 /**
  * Interface for a predicate (a feature) in rules.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/core/attributeclassobservers/FIMTDDNumericAttributeClassLimitObserver.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/core/attributeclassobservers/FIMTDDNumericAttributeClassLimitObserver.java
similarity index 94%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/core/attributeclassobservers/FIMTDDNumericAttributeClassLimitObserver.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/core/attributeclassobservers/FIMTDDNumericAttributeClassLimitObserver.java
index cb47039..b235d7b 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/core/attributeclassobservers/FIMTDDNumericAttributeClassLimitObserver.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/core/attributeclassobservers/FIMTDDNumericAttributeClassLimitObserver.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.rules.core.attributeclassobservers;
+package org.apache.samoa.moa.classifiers.rules.core.attributeclassobservers;
 
 /*
  * #%L
@@ -20,8 +20,9 @@
  * #L%
  */
 
+import org.apache.samoa.moa.classifiers.core.attributeclassobservers.FIMTDDNumericAttributeClassObserver;
+
 import com.github.javacliparser.IntOption;
-import com.yahoo.labs.samoa.moa.classifiers.core.attributeclassobservers.FIMTDDNumericAttributeClassObserver;
 
 public class FIMTDDNumericAttributeClassLimitObserver extends FIMTDDNumericAttributeClassObserver {
 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/core/conditionaltests/NumericAttributeBinaryRulePredicate.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/core/conditionaltests/NumericAttributeBinaryRulePredicate.java
similarity index 93%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/core/conditionaltests/NumericAttributeBinaryRulePredicate.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/core/conditionaltests/NumericAttributeBinaryRulePredicate.java
index c761808..9124fb8 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/core/conditionaltests/NumericAttributeBinaryRulePredicate.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/core/conditionaltests/NumericAttributeBinaryRulePredicate.java
@@ -37,12 +37,12 @@
  *    
  *    
  */
-package com.yahoo.labs.samoa.moa.classifiers.rules.core.conditionaltests;
+package org.apache.samoa.moa.classifiers.rules.core.conditionaltests;
 
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.instances.InstancesHeader;
-import com.yahoo.labs.samoa.moa.classifiers.core.conditionaltests.InstanceConditionalBinaryTest;
-import com.yahoo.labs.samoa.moa.classifiers.rules.core.Predicate;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.InstancesHeader;
+import org.apache.samoa.moa.classifiers.core.conditionaltests.InstanceConditionalBinaryTest;
+import org.apache.samoa.moa.classifiers.rules.core.Predicate;
 
 /**
  * Numeric binary conditional test for instances to use to split nodes in AMRules.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/core/splitcriteria/SDRSplitCriterionAMRules.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/core/splitcriteria/SDRSplitCriterionAMRules.java
similarity index 91%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/core/splitcriteria/SDRSplitCriterionAMRules.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/core/splitcriteria/SDRSplitCriterionAMRules.java
index 6feec6a..34b33bc 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/core/splitcriteria/SDRSplitCriterionAMRules.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/core/splitcriteria/SDRSplitCriterionAMRules.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.rules.core.splitcriteria;
+package org.apache.samoa.moa.classifiers.rules.core.splitcriteria;
 
 /*
  * #%L
@@ -40,8 +40,8 @@
  *    
  */
 
-import com.yahoo.labs.samoa.moa.classifiers.core.splitcriteria.SDRSplitCriterion;
-import com.yahoo.labs.samoa.moa.classifiers.core.splitcriteria.SplitCriterion;
+import org.apache.samoa.moa.classifiers.core.splitcriteria.SDRSplitCriterion;
+import org.apache.samoa.moa.classifiers.core.splitcriteria.SplitCriterion;
 
 public class SDRSplitCriterionAMRules extends SDRSplitCriterion implements SplitCriterion {
 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/core/voting/AbstractErrorWeightedVote.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/core/voting/AbstractErrorWeightedVote.java
similarity index 95%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/core/voting/AbstractErrorWeightedVote.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/core/voting/AbstractErrorWeightedVote.java
index a8bfafc..d86bee2 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/core/voting/AbstractErrorWeightedVote.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/core/voting/AbstractErrorWeightedVote.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.rules.core.voting;
+package org.apache.samoa.moa.classifiers.rules.core.voting;
 
 /*
  * #%L
@@ -23,7 +23,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import com.yahoo.labs.samoa.moa.AbstractMOAObject;
+import org.apache.samoa.moa.AbstractMOAObject;
 
 /**
  * AbstractErrorWeightedVote class for weighted votes based on estimates of errors.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/core/voting/ErrorWeightedVote.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/core/voting/ErrorWeightedVote.java
similarity index 94%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/core/voting/ErrorWeightedVote.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/core/voting/ErrorWeightedVote.java
index c905d65..c4167bd 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/core/voting/ErrorWeightedVote.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/core/voting/ErrorWeightedVote.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.rules.core.voting;
+package org.apache.samoa.moa.classifiers.rules.core.voting;
 
 /*
  * #%L
@@ -20,7 +20,7 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.MOAObject;
+import org.apache.samoa.moa.MOAObject;
 
 /**
  * ErrorWeightedVote interface for weighted votes based on estimates of errors.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/core/voting/InverseErrorWeightedVote.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/core/voting/InverseErrorWeightedVote.java
similarity index 97%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/core/voting/InverseErrorWeightedVote.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/core/voting/InverseErrorWeightedVote.java
index 8f9c3b0..561e132 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/core/voting/InverseErrorWeightedVote.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/core/voting/InverseErrorWeightedVote.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.rules.core.voting;
+package org.apache.samoa.moa.classifiers.rules.core.voting;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/core/voting/UniformWeightedVote.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/core/voting/UniformWeightedVote.java
similarity index 96%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/core/voting/UniformWeightedVote.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/core/voting/UniformWeightedVote.java
index a1cb0c2..e38b355 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/core/voting/UniformWeightedVote.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/core/voting/UniformWeightedVote.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.rules.core.voting;
+package org.apache.samoa.moa.classifiers.rules.core.voting;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/driftdetection/PageHinkleyFading.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/driftdetection/PageHinkleyFading.java
similarity index 96%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/driftdetection/PageHinkleyFading.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/driftdetection/PageHinkleyFading.java
index ab9b498..203a227 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/driftdetection/PageHinkleyFading.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/driftdetection/PageHinkleyFading.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.rules.driftdetection;
+package org.apache.samoa.moa.classifiers.rules.driftdetection;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/driftdetection/PageHinkleyTest.java b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/driftdetection/PageHinkleyTest.java
similarity index 97%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/driftdetection/PageHinkleyTest.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/driftdetection/PageHinkleyTest.java
index 8037c94..3e4cdf9 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/classifiers/rules/driftdetection/PageHinkleyTest.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/classifiers/rules/driftdetection/PageHinkleyTest.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.classifiers.rules.driftdetection;
+package org.apache.samoa.moa.classifiers.rules.driftdetection;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/cluster/CFCluster.java b/samoa-api/src/main/java/org/apache/samoa/moa/cluster/CFCluster.java
similarity index 97%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/cluster/CFCluster.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/cluster/CFCluster.java
index bf7cdd6..bffb776 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/cluster/CFCluster.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/cluster/CFCluster.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.cluster;
+package org.apache.samoa.moa.cluster;
 
 /*
  * #%L
@@ -20,7 +20,8 @@
  * #L%
  */
 import java.util.Arrays;
-import com.yahoo.labs.samoa.instances.Instance;
+
+import org.apache.samoa.instances.Instance;
 
 /* micro cluster, as defined by Aggarwal et al, On Clustering Massive Data Streams: A Summarization Praradigm 
  * in the book Data streams : models and algorithms, by Charu C Aggarwal
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/cluster/Cluster.java b/samoa-api/src/main/java/org/apache/samoa/moa/cluster/Cluster.java
similarity index 96%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/cluster/Cluster.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/cluster/Cluster.java
index 9f77c42..a700641 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/cluster/Cluster.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/cluster/Cluster.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.cluster;
+package org.apache.samoa.moa.cluster;
 
 /*
  * #%L
@@ -25,8 +25,8 @@
 import java.util.Map;
 import java.util.Random;
 
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.moa.AbstractMOAObject;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.moa.AbstractMOAObject;
 
 public abstract class Cluster extends AbstractMOAObject {
 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/cluster/Clustering.java b/samoa-api/src/main/java/org/apache/samoa/moa/cluster/Clustering.java
similarity index 96%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/cluster/Clustering.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/cluster/Clustering.java
index 70a5e79..7c2a9c8 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/cluster/Clustering.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/cluster/Clustering.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.cluster;
+package org.apache.samoa.moa.cluster;
 
 /*
  * #%L
@@ -25,11 +25,11 @@
 import java.util.HashMap;
 import java.util.List;
 
-import com.yahoo.labs.samoa.moa.AbstractMOAObject;
-import com.yahoo.labs.samoa.moa.core.AutoExpandVector;
-import com.yahoo.labs.samoa.moa.core.DataPoint;
-import com.yahoo.labs.samoa.instances.Attribute;
-import com.yahoo.labs.samoa.instances.Instance;
+import org.apache.samoa.instances.Attribute;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.moa.AbstractMOAObject;
+import org.apache.samoa.moa.core.AutoExpandVector;
+import org.apache.samoa.moa.core.DataPoint;
 
 public class Clustering extends AbstractMOAObject {
 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/cluster/Miniball.java b/samoa-api/src/main/java/org/apache/samoa/moa/cluster/Miniball.java
similarity index 97%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/cluster/Miniball.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/cluster/Miniball.java
index 1cfcf52..da2a0e5 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/cluster/Miniball.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/cluster/Miniball.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.cluster;
+package org.apache.samoa.moa.cluster;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/cluster/SphereCluster.java b/samoa-api/src/main/java/org/apache/samoa/moa/cluster/SphereCluster.java
similarity index 98%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/cluster/SphereCluster.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/cluster/SphereCluster.java
index 55c8fdd..fdf2af6 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/cluster/SphereCluster.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/cluster/SphereCluster.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.cluster;
+package org.apache.samoa.moa.cluster;
 
 /*
  * #%L
@@ -20,11 +20,12 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.instances.DenseInstance;
-import com.yahoo.labs.samoa.instances.Instance;
 import java.util.List;
 import java.util.Random;
 
+import org.apache.samoa.instances.DenseInstance;
+import org.apache.samoa.instances.Instance;
+
 /**
  * A simple implementation of the <code>Cluster</code> interface representing spherical clusters. The inclusion
  * probability is one inside the sphere and zero everywhere else.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/clusterers/AbstractClusterer.java b/samoa-api/src/main/java/org/apache/samoa/moa/clusterers/AbstractClusterer.java
similarity index 94%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/clusterers/AbstractClusterer.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/clusterers/AbstractClusterer.java
index 8fb386b..02a5191 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/clusterers/AbstractClusterer.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/clusterers/AbstractClusterer.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.clusterers;
+package org.apache.samoa.moa.clusterers;
 
 /*
  * #%L
@@ -23,18 +23,19 @@
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Random;
-import com.yahoo.labs.samoa.moa.cluster.Clustering;
 
-import com.yahoo.labs.samoa.instances.InstancesHeader;
-import com.yahoo.labs.samoa.moa.core.Measurement;
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.core.StringUtils;
-import com.yahoo.labs.samoa.moa.options.AbstractOptionHandler;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.instances.InstancesHeader;
+import org.apache.samoa.moa.cluster.Clustering;
+import org.apache.samoa.moa.core.Measurement;
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.core.StringUtils;
+import org.apache.samoa.moa.options.AbstractOptionHandler;
+import org.apache.samoa.moa.tasks.TaskMonitor;
+
 import com.github.javacliparser.FlagOption;
 import com.github.javacliparser.IntOption;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.instances.Instances;
 
 public abstract class AbstractClusterer extends AbstractOptionHandler
     implements Clusterer {
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/clusterers/ClusterGenerator.java b/samoa-api/src/main/java/org/apache/samoa/moa/clusterers/ClusterGenerator.java
similarity index 97%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/clusterers/ClusterGenerator.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/clusterers/ClusterGenerator.java
index 2ddb770..b9f80b5 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/clusterers/ClusterGenerator.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/clusterers/ClusterGenerator.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.clusterers;
+package org.apache.samoa.moa.clusterers;
 
 /*
  * #%L
@@ -23,13 +23,15 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Random;
+
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.moa.cluster.Clustering;
+import org.apache.samoa.moa.cluster.SphereCluster;
+import org.apache.samoa.moa.core.DataPoint;
+import org.apache.samoa.moa.core.Measurement;
+
 import com.github.javacliparser.FloatOption;
 import com.github.javacliparser.IntOption;
-import com.yahoo.labs.samoa.moa.cluster.Clustering;
-import com.yahoo.labs.samoa.moa.cluster.SphereCluster;
-import com.yahoo.labs.samoa.moa.core.Measurement;
-import com.yahoo.labs.samoa.moa.core.DataPoint;
-import com.yahoo.labs.samoa.instances.Instance;
 
 public class ClusterGenerator extends AbstractClusterer {
 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/clusterers/Clusterer.java b/samoa-api/src/main/java/org/apache/samoa/moa/clusterers/Clusterer.java
similarity index 80%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/clusterers/Clusterer.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/clusterers/Clusterer.java
index 80c243d..bfa07c8 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/clusterers/Clusterer.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/clusterers/Clusterer.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.clusterers;
+package org.apache.samoa.moa.clusterers;
 
 /*
  * #%L
@@ -20,12 +20,12 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.MOAObject;
-import com.yahoo.labs.samoa.moa.cluster.Clustering;
-import com.yahoo.labs.samoa.instances.InstancesHeader;
-import com.yahoo.labs.samoa.moa.core.Measurement;
-import com.yahoo.labs.samoa.moa.options.OptionHandler;
-import com.yahoo.labs.samoa.instances.Instance;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.InstancesHeader;
+import org.apache.samoa.moa.MOAObject;
+import org.apache.samoa.moa.cluster.Clustering;
+import org.apache.samoa.moa.core.Measurement;
+import org.apache.samoa.moa.options.OptionHandler;
 
 public interface Clusterer extends MOAObject, OptionHandler {
 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/clusterers/KMeans.java b/samoa-api/src/main/java/org/apache/samoa/moa/clusterers/KMeans.java
similarity index 95%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/clusterers/KMeans.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/clusterers/KMeans.java
index 1c31e26..8eeaeba 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/clusterers/KMeans.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/clusterers/KMeans.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.clusterers;
+package org.apache.samoa.moa.clusterers;
 
 /*
  * #%L
@@ -22,10 +22,11 @@
 
 import java.util.ArrayList;
 import java.util.List;
-import com.yahoo.labs.samoa.moa.cluster.CFCluster;
-import com.yahoo.labs.samoa.moa.cluster.Cluster;
-import com.yahoo.labs.samoa.moa.cluster.Clustering;
-import com.yahoo.labs.samoa.moa.cluster.SphereCluster;
+
+import org.apache.samoa.moa.cluster.CFCluster;
+import org.apache.samoa.moa.cluster.Cluster;
+import org.apache.samoa.moa.cluster.Clustering;
+import org.apache.samoa.moa.cluster.SphereCluster;
 
 /**
  * A kMeans implementation for microclusterings. For now it only uses the real centers of the groundtruthclustering for
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/clusterers/clustream/Clustream.java b/samoa-api/src/main/java/org/apache/samoa/moa/clusterers/clustream/Clustream.java
similarity index 95%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/clusterers/clustream/Clustream.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/clusterers/clustream/Clustream.java
index 498bee0..055c3d6 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/clusterers/clustream/Clustream.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/clusterers/clustream/Clustream.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.clusterers.clustream;
+package org.apache.samoa.moa.clusterers.clustream;
 
 /*
  * #%L
@@ -24,14 +24,16 @@
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Random;
-import com.yahoo.labs.samoa.moa.cluster.Cluster;
-import com.yahoo.labs.samoa.moa.cluster.Clustering;
-import com.yahoo.labs.samoa.moa.cluster.SphereCluster;
-import com.yahoo.labs.samoa.moa.clusterers.AbstractClusterer;
-import com.yahoo.labs.samoa.moa.core.Measurement;
+
+import org.apache.samoa.instances.DenseInstance;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.moa.cluster.Cluster;
+import org.apache.samoa.moa.cluster.Clustering;
+import org.apache.samoa.moa.cluster.SphereCluster;
+import org.apache.samoa.moa.clusterers.AbstractClusterer;
+import org.apache.samoa.moa.core.Measurement;
+
 import com.github.javacliparser.IntOption;
-import com.yahoo.labs.samoa.instances.DenseInstance;
-import com.yahoo.labs.samoa.instances.Instance;
 
 /**
  * Citation: CluStream: Charu C. Aggarwal, Jiawei Han, Jianyong Wang, Philip S. Yu: A Framework for Clustering Evolving
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/clusterers/clustream/ClustreamKernel.java b/samoa-api/src/main/java/org/apache/samoa/moa/clusterers/clustream/ClustreamKernel.java
similarity index 97%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/clusterers/clustream/ClustreamKernel.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/clusterers/clustream/ClustreamKernel.java
index 2a8f450..522d50e 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/clusterers/clustream/ClustreamKernel.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/clusterers/clustream/ClustreamKernel.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.clusterers.clustream;
+package org.apache.samoa.moa.clusterers.clustream;
 
 /*
  * #%L
@@ -21,8 +21,8 @@
  */
 import java.util.List;
 
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.moa.cluster.CFCluster;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.moa.cluster.CFCluster;
 
 public class ClustreamKernel extends CFCluster {
   private static final long serialVersionUID = 1L;
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/clusterers/clustream/WithKmeans.java b/samoa-api/src/main/java/org/apache/samoa/moa/clusterers/clustream/WithKmeans.java
similarity index 96%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/clusterers/clustream/WithKmeans.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/clusterers/clustream/WithKmeans.java
index 08e16ae..cf54dd8 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/clusterers/clustream/WithKmeans.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/clusterers/clustream/WithKmeans.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.clusterers.clustream;
+package org.apache.samoa.moa.clusterers.clustream;
 
 /*
  * #%L
@@ -26,15 +26,16 @@
 import java.util.List;
 import java.util.Random;
 
-import com.yahoo.labs.samoa.moa.cluster.CFCluster;
-import com.yahoo.labs.samoa.moa.cluster.Cluster;
-import com.yahoo.labs.samoa.moa.cluster.Clustering;
-import com.yahoo.labs.samoa.moa.cluster.SphereCluster;
-import com.yahoo.labs.samoa.moa.clusterers.AbstractClusterer;
-import com.yahoo.labs.samoa.moa.core.Measurement;
+import org.apache.samoa.instances.DenseInstance;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.moa.cluster.CFCluster;
+import org.apache.samoa.moa.cluster.Cluster;
+import org.apache.samoa.moa.cluster.Clustering;
+import org.apache.samoa.moa.cluster.SphereCluster;
+import org.apache.samoa.moa.clusterers.AbstractClusterer;
+import org.apache.samoa.moa.core.Measurement;
+
 import com.github.javacliparser.IntOption;
-import com.yahoo.labs.samoa.instances.DenseInstance;
-import com.yahoo.labs.samoa.instances.Instance;
 
 public class WithKmeans extends AbstractClusterer {
 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/AutoClassDiscovery.java b/samoa-api/src/main/java/org/apache/samoa/moa/core/AutoClassDiscovery.java
similarity index 99%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/AutoClassDiscovery.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/core/AutoClassDiscovery.java
index ef15bd5..e141fde 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/AutoClassDiscovery.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/core/AutoClassDiscovery.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.core;
+package org.apache.samoa.moa.core;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/AutoExpandVector.java b/samoa-api/src/main/java/org/apache/samoa/moa/core/AutoExpandVector.java
similarity index 95%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/AutoExpandVector.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/core/AutoExpandVector.java
index 7101f61..fce23dc 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/AutoExpandVector.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/core/AutoExpandVector.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.core;
+package org.apache.samoa.moa.core;
 
 /*
  * #%L
@@ -23,8 +23,8 @@
 import java.util.ArrayList;
 import java.util.Collection;
 
-import com.yahoo.labs.samoa.moa.AbstractMOAObject;
-import com.yahoo.labs.samoa.moa.MOAObject;
+import org.apache.samoa.moa.AbstractMOAObject;
+import org.apache.samoa.moa.MOAObject;
 
 /**
  * Vector with the capability of automatic expansion.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/DataPoint.java b/samoa-api/src/main/java/org/apache/samoa/moa/core/DataPoint.java
similarity index 94%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/DataPoint.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/core/DataPoint.java
index 1e7dcc9..e4e1c61 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/DataPoint.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/core/DataPoint.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.core;
+package org.apache.samoa.moa.core;
 
 /*
  * #%L
@@ -24,9 +24,9 @@
 import java.util.Iterator;
 import java.util.TreeSet;
 
-import com.yahoo.labs.samoa.instances.Attribute;
-import com.yahoo.labs.samoa.instances.DenseInstance;
-import com.yahoo.labs.samoa.instances.Instance;
+import org.apache.samoa.instances.Attribute;
+import org.apache.samoa.instances.DenseInstance;
+import org.apache.samoa.instances.Instance;
 
 public class DataPoint extends DenseInstance {
 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/DoubleVector.java b/samoa-api/src/main/java/org/apache/samoa/moa/core/DoubleVector.java
similarity index 97%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/DoubleVector.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/core/DoubleVector.java
index 132e3fb..fbfc268 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/DoubleVector.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/core/DoubleVector.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.core;
+package org.apache.samoa.moa.core;
 
 /*
  * #%L
@@ -20,7 +20,7 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.AbstractMOAObject;
+import org.apache.samoa.moa.AbstractMOAObject;
 
 /**
  * Vector of double numbers with some utilities.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/Example.java b/samoa-api/src/main/java/org/apache/samoa/moa/core/Example.java
similarity index 95%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/Example.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/core/Example.java
index fdf681b..96f9d21 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/Example.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/core/Example.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.core;
+package org.apache.samoa.moa.core;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/FastVector.java b/samoa-api/src/main/java/org/apache/samoa/moa/core/FastVector.java
similarity index 97%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/FastVector.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/core/FastVector.java
index 140b698..adbdceb 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/FastVector.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/core/FastVector.java
@@ -3,7 +3,7 @@
 
  *
  */
-package com.yahoo.labs.samoa.moa.core;
+package org.apache.samoa.moa.core;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/GaussianEstimator.java b/samoa-api/src/main/java/org/apache/samoa/moa/core/GaussianEstimator.java
similarity index 95%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/GaussianEstimator.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/core/GaussianEstimator.java
index 14cca27..ac3f958 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/GaussianEstimator.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/core/GaussianEstimator.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.core;
+package org.apache.samoa.moa.core;
 
 /*
  * #%L
@@ -20,7 +20,7 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.AbstractMOAObject;
+import org.apache.samoa.moa.AbstractMOAObject;
 
 /**
  * Gaussian incremental estimator that uses incremental method that is more resistant to floating point imprecision. for
@@ -106,7 +106,7 @@
       double value) {
     double equalToWeight = probabilityDensity(value) * this.weightSum;
     double stdDev = getStdDev();
-    double lessThanWeight = stdDev > 0.0 ? com.yahoo.labs.samoa.moa.core.Statistics
+    double lessThanWeight = stdDev > 0.0 ? org.apache.samoa.moa.core.Statistics
         .normalProbability((value - getMean()) / stdDev)
         * this.weightSum - equalToWeight
         : (value < getMean() ? this.weightSum - equalToWeight : 0.0);
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/GreenwaldKhannaQuantileSummary.java b/samoa-api/src/main/java/org/apache/samoa/moa/core/GreenwaldKhannaQuantileSummary.java
similarity index 98%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/GreenwaldKhannaQuantileSummary.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/core/GreenwaldKhannaQuantileSummary.java
index 8054f96..346c390 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/GreenwaldKhannaQuantileSummary.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/core/GreenwaldKhannaQuantileSummary.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.core;
+package org.apache.samoa.moa.core;
 
 /*
  * #%L
@@ -23,7 +23,7 @@
 import java.io.Serializable;
 import java.util.ArrayList;
 
-import com.yahoo.labs.samoa.moa.AbstractMOAObject;
+import org.apache.samoa.moa.AbstractMOAObject;
 
 /**
  * Class for representing summaries of Greenwald and Khanna quantiles.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/InputStreamProgressMonitor.java b/samoa-api/src/main/java/org/apache/samoa/moa/core/InputStreamProgressMonitor.java
similarity index 98%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/InputStreamProgressMonitor.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/core/InputStreamProgressMonitor.java
index 703336e..33d55d0 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/InputStreamProgressMonitor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/core/InputStreamProgressMonitor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.core;
+package org.apache.samoa.moa.core;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/InstanceExample.java b/samoa-api/src/main/java/org/apache/samoa/moa/core/InstanceExample.java
similarity index 92%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/InstanceExample.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/core/InstanceExample.java
index e1283d9..3ae8985 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/InstanceExample.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/core/InstanceExample.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.core;
+package org.apache.samoa.moa.core;
 
 /*
  * #%L
@@ -20,9 +20,10 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.instances.Instance;
 import java.io.Serializable;
 
+import org.apache.samoa.instances.Instance;
+
 public class InstanceExample implements Example<Instance>, Serializable {
 
   public Instance instance;
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/Measurement.java b/samoa-api/src/main/java/org/apache/samoa/moa/core/Measurement.java
similarity index 97%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/Measurement.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/core/Measurement.java
index 50f698b..8fc80c7 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/Measurement.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/core/Measurement.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.core;
+package org.apache.samoa.moa.core;
 
 /*
  * #%L
@@ -23,7 +23,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import com.yahoo.labs.samoa.moa.AbstractMOAObject;
+import org.apache.samoa.moa.AbstractMOAObject;
 
 /**
  * Class for storing an evaluation measurement.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/MiscUtils.java b/samoa-api/src/main/java/org/apache/samoa/moa/core/MiscUtils.java
similarity index 98%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/MiscUtils.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/core/MiscUtils.java
index b3bdcc5..89f1146 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/MiscUtils.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/core/MiscUtils.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.core;
+package org.apache.samoa.moa.core;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/ObjectRepository.java b/samoa-api/src/main/java/org/apache/samoa/moa/core/ObjectRepository.java
similarity index 95%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/ObjectRepository.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/core/ObjectRepository.java
index 156ed85..092c0f8 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/ObjectRepository.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/core/ObjectRepository.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.core;
+package org.apache.samoa.moa.core;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/SerializeUtils.java b/samoa-api/src/main/java/org/apache/samoa/moa/core/SerializeUtils.java
similarity index 98%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/SerializeUtils.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/core/SerializeUtils.java
index fc71330..ce884aa 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/SerializeUtils.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/core/SerializeUtils.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.core;
+package org.apache.samoa.moa.core;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/Statistics.java b/samoa-api/src/main/java/org/apache/samoa/moa/core/Statistics.java
similarity index 99%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/Statistics.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/core/Statistics.java
index 868b905..dde10b8 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/Statistics.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/core/Statistics.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.core;
+package org.apache.samoa.moa.core;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/StringUtils.java b/samoa-api/src/main/java/org/apache/samoa/moa/core/StringUtils.java
similarity index 98%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/StringUtils.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/core/StringUtils.java
index b143ba3..6189f37 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/StringUtils.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/core/StringUtils.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.core;
+package org.apache.samoa.moa.core;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/Utils.java b/samoa-api/src/main/java/org/apache/samoa/moa/core/Utils.java
similarity index 99%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/Utils.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/core/Utils.java
index 4de8f5e..e45db02 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/core/Utils.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/core/Utils.java
@@ -4,7 +4,7 @@
  *
  */
 
-package com.yahoo.labs.samoa.moa.core;
+package org.apache.samoa.moa.core;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/evaluation/LearningCurve.java b/samoa-api/src/main/java/org/apache/samoa/moa/evaluation/LearningCurve.java
similarity index 93%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/evaluation/LearningCurve.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/evaluation/LearningCurve.java
index 0aa685b..427e01d 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/evaluation/LearningCurve.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/evaluation/LearningCurve.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.evaluation;
+package org.apache.samoa.moa.evaluation;
 
 /*
  * #%L
@@ -23,10 +23,10 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import com.yahoo.labs.samoa.moa.AbstractMOAObject;
-import com.yahoo.labs.samoa.moa.core.DoubleVector;
-import com.yahoo.labs.samoa.moa.core.Measurement;
-import com.yahoo.labs.samoa.moa.core.StringUtils;
+import org.apache.samoa.moa.AbstractMOAObject;
+import org.apache.samoa.moa.core.DoubleVector;
+import org.apache.samoa.moa.core.Measurement;
+import org.apache.samoa.moa.core.StringUtils;
 
 /**
  * Class that stores and keeps the history of evaluation measurements.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/evaluation/LearningEvaluation.java b/samoa-api/src/main/java/org/apache/samoa/moa/evaluation/LearningEvaluation.java
similarity index 90%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/evaluation/LearningEvaluation.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/evaluation/LearningEvaluation.java
index a814671..993667d 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/evaluation/LearningEvaluation.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/evaluation/LearningEvaluation.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.evaluation;
+package org.apache.samoa.moa.evaluation;
 
 /*
  * #%L
@@ -20,13 +20,14 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.AbstractMOAObject;
-import com.yahoo.labs.samoa.moa.core.Measurement;
-import com.yahoo.labs.samoa.moa.learners.Learner;
 import java.util.Arrays;
 import java.util.LinkedList;
 import java.util.List;
 
+import org.apache.samoa.moa.AbstractMOAObject;
+import org.apache.samoa.moa.core.Measurement;
+import org.apache.samoa.moa.learners.Learner;
+
 /**
  * Class that stores an array of evaluation measurements.
  * 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/evaluation/LearningPerformanceEvaluator.java b/samoa-api/src/main/java/org/apache/samoa/moa/evaluation/LearningPerformanceEvaluator.java
similarity index 89%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/evaluation/LearningPerformanceEvaluator.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/evaluation/LearningPerformanceEvaluator.java
index 1b235f1..7a0a8af 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/evaluation/LearningPerformanceEvaluator.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/evaluation/LearningPerformanceEvaluator.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.evaluation;
+package org.apache.samoa.moa.evaluation;
 
 /*
  * #%L
@@ -20,9 +20,9 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.MOAObject;
-import com.yahoo.labs.samoa.moa.core.Example;
-import com.yahoo.labs.samoa.moa.core.Measurement;
+import org.apache.samoa.moa.MOAObject;
+import org.apache.samoa.moa.core.Example;
+import org.apache.samoa.moa.core.Measurement;
 
 /**
  * Interface implemented by learner evaluators to monitor the results of the learning process.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/evaluation/MeasureCollection.java b/samoa-api/src/main/java/org/apache/samoa/moa/evaluation/MeasureCollection.java
similarity index 96%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/evaluation/MeasureCollection.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/evaluation/MeasureCollection.java
index 8b8481a..42e6d49 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/evaluation/MeasureCollection.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/evaluation/MeasureCollection.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.evaluation;
+package org.apache.samoa.moa.evaluation;
 
 /*
  * #%L
@@ -22,9 +22,10 @@
 
 import java.util.ArrayList;
 import java.util.HashMap;
-import com.yahoo.labs.samoa.moa.AbstractMOAObject;
-import com.yahoo.labs.samoa.moa.cluster.Clustering;
-import com.yahoo.labs.samoa.moa.core.DataPoint;
+
+import org.apache.samoa.moa.AbstractMOAObject;
+import org.apache.samoa.moa.cluster.Clustering;
+import org.apache.samoa.moa.core.DataPoint;
 
 public abstract class MeasureCollection extends AbstractMOAObject {
   private String[] names;
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/evaluation/MembershipMatrix.java b/samoa-api/src/main/java/org/apache/samoa/moa/evaluation/MembershipMatrix.java
similarity index 96%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/evaluation/MembershipMatrix.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/evaluation/MembershipMatrix.java
index 721d63a..4387c04 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/evaluation/MembershipMatrix.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/evaluation/MembershipMatrix.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.evaluation;
+package org.apache.samoa.moa.evaluation;
 
 /*
  * #%L
@@ -22,8 +22,9 @@
 
 import java.util.ArrayList;
 import java.util.HashMap;
-import com.yahoo.labs.samoa.moa.cluster.Clustering;
-import com.yahoo.labs.samoa.moa.core.DataPoint;
+
+import org.apache.samoa.moa.cluster.Clustering;
+import org.apache.samoa.moa.core.DataPoint;
 
 public class MembershipMatrix {
 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/learners/Learner.java b/samoa-api/src/main/java/org/apache/samoa/moa/learners/Learner.java
similarity index 92%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/learners/Learner.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/learners/Learner.java
index ddd9b46..8905ea5 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/learners/Learner.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/learners/Learner.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.learners;
+package org.apache.samoa.moa.learners;
 
 /*
  * #%L
@@ -20,11 +20,11 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.MOAObject;
-import com.yahoo.labs.samoa.moa.core.Example;
-import com.yahoo.labs.samoa.instances.InstancesHeader;
-import com.yahoo.labs.samoa.moa.core.Measurement;
-import com.yahoo.labs.samoa.moa.options.OptionHandler;
+import org.apache.samoa.instances.InstancesHeader;
+import org.apache.samoa.moa.MOAObject;
+import org.apache.samoa.moa.core.Example;
+import org.apache.samoa.moa.core.Measurement;
+import org.apache.samoa.moa.options.OptionHandler;
 
 /**
  * Learner interface for incremental learning models.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/options/AbstractClassOption.java b/samoa-api/src/main/java/org/apache/samoa/moa/options/AbstractClassOption.java
similarity index 97%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/options/AbstractClassOption.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/options/AbstractClassOption.java
index 11ecad3..3230235 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/options/AbstractClassOption.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/options/AbstractClassOption.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.options;
+package org.apache.samoa.moa.options;
 
 /*
  * #%L
@@ -21,11 +21,13 @@
  */
 
 import java.io.File;
+
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.tasks.Task;
+import org.apache.samoa.moa.tasks.TaskMonitor;
+
 import com.github.javacliparser.AbstractOption;
 import com.github.javacliparser.SerializeUtils;
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.tasks.Task;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
 
 /**
  * Abstract class option.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/options/AbstractOptionHandler.java b/samoa-api/src/main/java/org/apache/samoa/moa/options/AbstractOptionHandler.java
similarity index 95%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/options/AbstractOptionHandler.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/options/AbstractOptionHandler.java
index 761de50..6acad43 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/options/AbstractOptionHandler.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/options/AbstractOptionHandler.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.options;
+package org.apache.samoa.moa.options;
 
 /*
  * #%L
@@ -20,11 +20,12 @@
  * #L%
  */
 
+import org.apache.samoa.moa.AbstractMOAObject;
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.tasks.NullMonitor;
+import org.apache.samoa.moa.tasks.TaskMonitor;
+
 import com.github.javacliparser.Options;
-import com.yahoo.labs.samoa.moa.AbstractMOAObject;
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.tasks.NullMonitor;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
 
 /**
  * Abstract Option Handler. All classes that have options in MOA extend this class.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/options/ClassOption.java b/samoa-api/src/main/java/org/apache/samoa/moa/options/ClassOption.java
similarity index 97%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/options/ClassOption.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/options/ClassOption.java
index 1c047be..1d9fdfe 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/options/ClassOption.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/options/ClassOption.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.options;
+package org.apache.samoa.moa.options;
 
 /*
  * #%L
@@ -21,10 +21,12 @@
  */
 
 import java.io.File;
+
+import org.apache.samoa.moa.options.OptionHandler;
+import org.apache.samoa.moa.tasks.Task;
+
 import com.github.javacliparser.Option;
 import com.github.javacliparser.Options;
-import com.yahoo.labs.samoa.moa.options.OptionHandler;
-import com.yahoo.labs.samoa.moa.tasks.Task;
 
 /**
  * Class option.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/options/OptionHandler.java b/samoa-api/src/main/java/org/apache/samoa/moa/options/OptionHandler.java
similarity index 90%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/options/OptionHandler.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/options/OptionHandler.java
index c325ec3..0af7172 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/options/OptionHandler.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/options/OptionHandler.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.options;
+package org.apache.samoa.moa.options;
 
 /*
  * #%L
@@ -20,11 +20,12 @@
  * #L%
  */
 
+import org.apache.samoa.moa.MOAObject;
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.tasks.TaskMonitor;
+
 import com.github.javacliparser.Configurable;
 import com.github.javacliparser.Options;
-import com.yahoo.labs.samoa.moa.MOAObject;
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
 
 /**
  * Interface representing an object that handles options or parameters.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/options/OptionsHandler.java b/samoa-api/src/main/java/org/apache/samoa/moa/options/OptionsHandler.java
similarity index 96%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/options/OptionsHandler.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/options/OptionsHandler.java
index a57cbad..cbe047f 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/options/OptionsHandler.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/options/OptionsHandler.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.options;
+package org.apache.samoa.moa.options;
 
 /*
  * #%L
@@ -21,11 +21,13 @@
  */
 
 import java.util.HashMap;
+
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.tasks.NullMonitor;
+import org.apache.samoa.moa.tasks.TaskMonitor;
+
 import com.github.javacliparser.JavaCLIParser;
 import com.github.javacliparser.Option;
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.tasks.NullMonitor;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
 
 /*
  * To change this template, choose Tools | Templates
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/streams/ArffFileStream.java b/samoa-api/src/main/java/org/apache/samoa/moa/streams/ArffFileStream.java
similarity index 92%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/streams/ArffFileStream.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/streams/ArffFileStream.java
index 7dd0975..3a17d61 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/streams/ArffFileStream.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/streams/ArffFileStream.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.streams;
+package org.apache.samoa.moa.streams;
 
 /*
  * #%L
@@ -27,15 +27,16 @@
 import java.io.InputStreamReader;
 import java.io.Reader;
 
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.instances.InstancesHeader;
+import org.apache.samoa.moa.core.InputStreamProgressMonitor;
+import org.apache.samoa.moa.core.InstanceExample;
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.options.AbstractOptionHandler;
+import org.apache.samoa.moa.tasks.TaskMonitor;
+
 import com.github.javacliparser.FileOption;
 import com.github.javacliparser.IntOption;
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.instances.InstancesHeader;
-import com.yahoo.labs.samoa.moa.core.InputStreamProgressMonitor;
-import com.yahoo.labs.samoa.moa.core.InstanceExample;
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.options.AbstractOptionHandler;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
 
 /**
  * Stream reader of ARFF files.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/streams/ExampleStream.java b/samoa-api/src/main/java/org/apache/samoa/moa/streams/ExampleStream.java
similarity index 91%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/streams/ExampleStream.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/streams/ExampleStream.java
index fa120b5..c4ab2df 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/streams/ExampleStream.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/streams/ExampleStream.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.streams;
+package org.apache.samoa.moa.streams;
 
 /*
  * #%L
@@ -20,9 +20,9 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.instances.InstancesHeader;
-import com.yahoo.labs.samoa.moa.MOAObject;
-import com.yahoo.labs.samoa.moa.core.Example;
+import org.apache.samoa.instances.InstancesHeader;
+import org.apache.samoa.moa.MOAObject;
+import org.apache.samoa.moa.core.Example;
 
 /**
  * Interface representing a data stream of examples.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/streams/InstanceStream.java b/samoa-api/src/main/java/org/apache/samoa/moa/streams/InstanceStream.java
similarity index 86%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/streams/InstanceStream.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/streams/InstanceStream.java
index 7b77c13..fc6ed8e 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/streams/InstanceStream.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/streams/InstanceStream.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.streams;
+package org.apache.samoa.moa.streams;
 
 /*
  * #%L
@@ -20,8 +20,8 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.core.Example;
-import com.yahoo.labs.samoa.instances.Instance;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.moa.core.Example;
 
 /**
  * Interface representing a data stream of instances.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/streams/clustering/ClusterEvent.java b/samoa-api/src/main/java/org/apache/samoa/moa/streams/clustering/ClusterEvent.java
similarity index 95%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/streams/clustering/ClusterEvent.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/streams/clustering/ClusterEvent.java
index ac0dc8c..9aa1168 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/streams/clustering/ClusterEvent.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/streams/clustering/ClusterEvent.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.streams.clustering;
+package org.apache.samoa.moa.streams.clustering;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/streams/clustering/ClusterEventListener.java b/samoa-api/src/main/java/org/apache/samoa/moa/streams/clustering/ClusterEventListener.java
similarity index 93%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/streams/clustering/ClusterEventListener.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/streams/clustering/ClusterEventListener.java
index 311339a..af7881b 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/streams/clustering/ClusterEventListener.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/streams/clustering/ClusterEventListener.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.streams.clustering;
+package org.apache.samoa.moa.streams.clustering;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/streams/clustering/ClusteringStream.java b/samoa-api/src/main/java/org/apache/samoa/moa/streams/clustering/ClusteringStream.java
similarity index 90%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/streams/clustering/ClusteringStream.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/streams/clustering/ClusteringStream.java
index ee53e6e..e51b437 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/streams/clustering/ClusteringStream.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/streams/clustering/ClusteringStream.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.streams.clustering;
+package org.apache.samoa.moa.streams.clustering;
 
 /*
  * #%L
@@ -20,10 +20,11 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.options.AbstractOptionHandler;
+import org.apache.samoa.moa.options.AbstractOptionHandler;
+import org.apache.samoa.moa.streams.InstanceStream;
+
 import com.github.javacliparser.FloatOption;
 import com.github.javacliparser.IntOption;
-import com.yahoo.labs.samoa.moa.streams.InstanceStream;
 
 public abstract class ClusteringStream extends AbstractOptionHandler implements InstanceStream {
   public IntOption decayHorizonOption = new IntOption("decayHorizon", 'h',
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/streams/clustering/RandomRBFGeneratorEvents.java b/samoa-api/src/main/java/org/apache/samoa/moa/streams/clustering/RandomRBFGeneratorEvents.java
similarity index 97%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/streams/clustering/RandomRBFGeneratorEvents.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/streams/clustering/RandomRBFGeneratorEvents.java
index d1eba95..c83f688 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/streams/clustering/RandomRBFGeneratorEvents.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/streams/clustering/RandomRBFGeneratorEvents.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.streams.clustering;
+package org.apache.samoa.moa.streams.clustering;
 
 /*
  * #%L
@@ -28,23 +28,24 @@
 import java.util.Random;
 import java.util.Vector;
 
-import com.yahoo.labs.samoa.moa.cluster.Clustering;
-import com.yahoo.labs.samoa.moa.cluster.SphereCluster;
-import com.yahoo.labs.samoa.moa.core.AutoExpandVector;
-import com.yahoo.labs.samoa.moa.core.InstanceExample;
-import com.yahoo.labs.samoa.instances.InstancesHeader;
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.core.DataPoint;
+import org.apache.samoa.instances.Attribute;
+import org.apache.samoa.instances.DenseInstance;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.instances.InstancesHeader;
+import org.apache.samoa.moa.cluster.Clustering;
+import org.apache.samoa.moa.cluster.SphereCluster;
+import org.apache.samoa.moa.core.AutoExpandVector;
+import org.apache.samoa.moa.core.DataPoint;
+import org.apache.samoa.moa.core.FastVector;
+import org.apache.samoa.moa.core.InstanceExample;
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.streams.InstanceStream;
+import org.apache.samoa.moa.tasks.TaskMonitor;
+
 import com.github.javacliparser.FlagOption;
 import com.github.javacliparser.FloatOption;
 import com.github.javacliparser.IntOption;
-import com.yahoo.labs.samoa.moa.streams.InstanceStream;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
-import com.yahoo.labs.samoa.instances.Attribute;
-import com.yahoo.labs.samoa.instances.DenseInstance;
-import com.yahoo.labs.samoa.moa.core.FastVector;
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.instances.Instances;
 
 public class RandomRBFGeneratorEvents extends ClusteringStream {
   private transient Vector listeners;
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/streams/generators/HyperplaneGenerator.java b/samoa-api/src/main/java/org/apache/samoa/moa/streams/generators/HyperplaneGenerator.java
similarity index 88%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/streams/generators/HyperplaneGenerator.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/streams/generators/HyperplaneGenerator.java
index 866e47f..b05fa1b 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/streams/generators/HyperplaneGenerator.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/streams/generators/HyperplaneGenerator.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.streams.generators;
+package org.apache.samoa.moa.streams.generators;
 
 /*
  * #%L
@@ -22,20 +22,21 @@
 
 import java.util.Random;
 
+import org.apache.samoa.instances.Attribute;
+import org.apache.samoa.instances.DenseInstance;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.instances.InstancesHeader;
+import org.apache.samoa.moa.core.Example;
+import org.apache.samoa.moa.core.FastVector;
+import org.apache.samoa.moa.core.InstanceExample;
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.options.AbstractOptionHandler;
+import org.apache.samoa.moa.streams.InstanceStream;
+import org.apache.samoa.moa.tasks.TaskMonitor;
+
 import com.github.javacliparser.FloatOption;
 import com.github.javacliparser.IntOption;
-import com.yahoo.labs.samoa.instances.Attribute;
-import com.yahoo.labs.samoa.instances.DenseInstance;
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.instances.InstancesHeader;
-import com.yahoo.labs.samoa.moa.core.Example;
-import com.yahoo.labs.samoa.moa.core.FastVector;
-import com.yahoo.labs.samoa.moa.core.InstanceExample;
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.options.AbstractOptionHandler;
-import com.yahoo.labs.samoa.moa.streams.InstanceStream;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
 
 /**
  * Stream generator for Hyperplane data stream.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/streams/generators/RandomTreeGenerator.java b/samoa-api/src/main/java/org/apache/samoa/moa/streams/generators/RandomTreeGenerator.java
similarity index 93%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/streams/generators/RandomTreeGenerator.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/streams/generators/RandomTreeGenerator.java
index cc8384f..69100aa 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/streams/generators/RandomTreeGenerator.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/streams/generators/RandomTreeGenerator.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.streams.generators;
+package org.apache.samoa.moa.streams.generators;
 
 /*
  * #%L
@@ -20,24 +20,24 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.instances.Attribute;
-import com.yahoo.labs.samoa.instances.DenseInstance;
-import com.yahoo.labs.samoa.moa.core.FastVector;
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.instances.Instances;
-
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Random;
-import com.yahoo.labs.samoa.moa.core.InstanceExample;
 
-import com.yahoo.labs.samoa.instances.InstancesHeader;
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.options.AbstractOptionHandler;
+import org.apache.samoa.instances.Attribute;
+import org.apache.samoa.instances.DenseInstance;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.instances.InstancesHeader;
+import org.apache.samoa.moa.core.FastVector;
+import org.apache.samoa.moa.core.InstanceExample;
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.options.AbstractOptionHandler;
+import org.apache.samoa.moa.streams.InstanceStream;
+import org.apache.samoa.moa.tasks.TaskMonitor;
+
 import com.github.javacliparser.FloatOption;
 import com.github.javacliparser.IntOption;
-import com.yahoo.labs.samoa.moa.streams.InstanceStream;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
 
 /**
  * Stream generator for a stream based on a randomly generated tree..
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/tasks/NullMonitor.java b/samoa-api/src/main/java/org/apache/samoa/moa/tasks/NullMonitor.java
similarity index 97%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/tasks/NullMonitor.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/tasks/NullMonitor.java
index 4c51219..a4fcd33 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/tasks/NullMonitor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/tasks/NullMonitor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.tasks;
+package org.apache.samoa.moa.tasks;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/tasks/ResultPreviewListener.java b/samoa-api/src/main/java/org/apache/samoa/moa/tasks/ResultPreviewListener.java
similarity index 96%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/tasks/ResultPreviewListener.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/tasks/ResultPreviewListener.java
index 124008d..f8dfadf 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/tasks/ResultPreviewListener.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/tasks/ResultPreviewListener.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.tasks;
+package org.apache.samoa.moa.tasks;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/tasks/Task.java b/samoa-api/src/main/java/org/apache/samoa/moa/tasks/Task.java
similarity index 92%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/tasks/Task.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/tasks/Task.java
index cd56914..6776a05 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/tasks/Task.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/tasks/Task.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.tasks;
+package org.apache.samoa.moa.tasks;
 
 /*
  * #%L
@@ -20,8 +20,8 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.moa.MOAObject;
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.MOAObject;
+import org.apache.samoa.moa.core.ObjectRepository;
 
 /**
  * Interface representing a task.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/tasks/TaskMonitor.java b/samoa-api/src/main/java/org/apache/samoa/moa/tasks/TaskMonitor.java
similarity index 98%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/moa/tasks/TaskMonitor.java
rename to samoa-api/src/main/java/org/apache/samoa/moa/tasks/TaskMonitor.java
index cce3ebe..4eaffaf 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/moa/tasks/TaskMonitor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/tasks/TaskMonitor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.moa.tasks;
+package org.apache.samoa.moa.tasks;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/streams/ArffFileStream.java b/samoa-api/src/main/java/org/apache/samoa/streams/ArffFileStream.java
similarity index 91%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/streams/ArffFileStream.java
rename to samoa-api/src/main/java/org/apache/samoa/streams/ArffFileStream.java
index 2053339..099f639 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/streams/ArffFileStream.java
+++ b/samoa-api/src/main/java/org/apache/samoa/streams/ArffFileStream.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.streams;
+package org.apache.samoa.streams;
 
 /*
  * #%L
@@ -22,12 +22,13 @@
 
 import java.io.IOException;
 
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.moa.core.InstanceExample;
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.tasks.TaskMonitor;
+
 import com.github.javacliparser.FileOption;
 import com.github.javacliparser.IntOption;
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.moa.core.InstanceExample;
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
 
 /**
  * InstanceStream for ARFF file
@@ -110,7 +111,7 @@
   }
 
   /*
-   * extend com.yahoo.labs.samoa.moa.MOAObject
+   * extend org.apache.samoa.moa.MOAObject
    */
   @Override
   public void getDescription(StringBuilder sb, int indent) {
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/streams/ClusteringEntranceProcessor.java b/samoa-api/src/main/java/org/apache/samoa/streams/ClusteringEntranceProcessor.java
similarity index 90%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/streams/ClusteringEntranceProcessor.java
rename to samoa-api/src/main/java/org/apache/samoa/streams/ClusteringEntranceProcessor.java
index 70403ca..db6f698 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/streams/ClusteringEntranceProcessor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/streams/ClusteringEntranceProcessor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.streams;
+package org.apache.samoa.streams;
 
 /*
  * #%L
@@ -22,23 +22,22 @@
 
 import java.util.Random;
 
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.EntranceProcessor;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.evaluation.ClusteringEvaluationContentEvent;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.learners.clusterers.ClusteringContentEvent;
+import org.apache.samoa.moa.cluster.Clustering;
+import org.apache.samoa.moa.core.DataPoint;
+import org.apache.samoa.moa.options.AbstractOptionHandler;
+import org.apache.samoa.moa.streams.InstanceStream;
+import org.apache.samoa.moa.streams.clustering.ClusteringStream;
+import org.apache.samoa.moa.streams.clustering.RandomRBFGeneratorEvents;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.EntranceProcessor;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.evaluation.ClusteringEvaluationContentEvent;
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.learners.clusterers.ClusteringContentEvent;
-import com.yahoo.labs.samoa.moa.cluster.Clustering;
-import com.yahoo.labs.samoa.moa.core.DataPoint;
-import com.yahoo.labs.samoa.moa.options.AbstractOptionHandler;
-import com.yahoo.labs.samoa.moa.streams.InstanceStream;
-import com.yahoo.labs.samoa.moa.streams.clustering.ClusteringStream;
-import com.yahoo.labs.samoa.moa.streams.clustering.RandomRBFGeneratorEvents;
-
 /**
  * EntranceProcessor for Clustering Evaluation Task.
  * 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/streams/FileStream.java b/samoa-api/src/main/java/org/apache/samoa/streams/FileStream.java
similarity index 89%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/streams/FileStream.java
rename to samoa-api/src/main/java/org/apache/samoa/streams/FileStream.java
index 4784ae0..4f07ed2 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/streams/FileStream.java
+++ b/samoa-api/src/main/java/org/apache/samoa/streams/FileStream.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.streams;
+package org.apache.samoa.streams;
 
 /*
  * #%L
@@ -26,15 +26,16 @@
 import java.io.InputStreamReader;
 import java.io.Reader;
 
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.instances.InstancesHeader;
+import org.apache.samoa.moa.core.InstanceExample;
+import org.apache.samoa.moa.core.ObjectRepository;
+import org.apache.samoa.moa.options.AbstractOptionHandler;
+import org.apache.samoa.moa.streams.InstanceStream;
+import org.apache.samoa.moa.tasks.TaskMonitor;
+import org.apache.samoa.streams.fs.FileStreamSource;
+
 import com.github.javacliparser.ClassOption;
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.instances.InstancesHeader;
-import com.yahoo.labs.samoa.moa.core.InstanceExample;
-import com.yahoo.labs.samoa.moa.core.ObjectRepository;
-import com.yahoo.labs.samoa.moa.options.AbstractOptionHandler;
-import com.yahoo.labs.samoa.moa.streams.InstanceStream;
-import com.yahoo.labs.samoa.moa.tasks.TaskMonitor;
-import com.yahoo.labs.samoa.streams.fs.FileStreamSource;
 
 /**
  * InstanceStream for files (Abstract class: subclass this class for different file formats)
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/streams/PrequentialSourceProcessor.java b/samoa-api/src/main/java/org/apache/samoa/streams/PrequentialSourceProcessor.java
similarity index 93%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/streams/PrequentialSourceProcessor.java
rename to samoa-api/src/main/java/org/apache/samoa/streams/PrequentialSourceProcessor.java
index a16a9d3..b947b2f 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/streams/PrequentialSourceProcessor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/streams/PrequentialSourceProcessor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.streams;
+package org.apache.samoa.streams;
 
 /*
  * #%L
@@ -25,18 +25,17 @@
 import java.util.concurrent.ScheduledFuture;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.EntranceProcessor;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.learners.InstanceContentEvent;
+import org.apache.samoa.moa.options.AbstractOptionHandler;
+import org.apache.samoa.moa.streams.InstanceStream;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.EntranceProcessor;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.learners.InstanceContentEvent;
-import com.yahoo.labs.samoa.moa.options.AbstractOptionHandler;
-import com.yahoo.labs.samoa.moa.streams.InstanceStream;
-
 /**
  * Prequential Source Processor is the processor for Prequential Evaluation Task.
  * 
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/streams/StreamSource.java b/samoa-api/src/main/java/org/apache/samoa/streams/StreamSource.java
similarity index 89%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/streams/StreamSource.java
rename to samoa-api/src/main/java/org/apache/samoa/streams/StreamSource.java
index 93dfee8..f4dba63 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/streams/StreamSource.java
+++ b/samoa-api/src/main/java/org/apache/samoa/streams/StreamSource.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.streams;
+package org.apache.samoa.streams;
 
 /*
  * #%L
@@ -24,9 +24,9 @@
  * License
  */
 
-import com.yahoo.labs.samoa.moa.core.Example;
-import com.yahoo.labs.samoa.moa.streams.InstanceStream;
-import com.yahoo.labs.samoa.instances.Instance;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.moa.core.Example;
+import org.apache.samoa.moa.streams.InstanceStream;
 
 /**
  * The Class StreamSource.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/streams/StreamSourceProcessor.java b/samoa-api/src/main/java/org/apache/samoa/streams/StreamSourceProcessor.java
similarity index 91%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/streams/StreamSourceProcessor.java
rename to samoa-api/src/main/java/org/apache/samoa/streams/StreamSourceProcessor.java
index e40c843..d34f701 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/streams/StreamSourceProcessor.java
+++ b/samoa-api/src/main/java/org/apache/samoa/streams/StreamSourceProcessor.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.streams;
+package org.apache.samoa.streams;
 
 /*
  * #%L
@@ -24,17 +24,16 @@
  * License
  */
 
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.Instances;
+import org.apache.samoa.learners.InstanceContentEvent;
+import org.apache.samoa.moa.streams.InstanceStream;
+import org.apache.samoa.topology.Stream;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.instances.Instance;
-import com.yahoo.labs.samoa.instances.Instances;
-import com.yahoo.labs.samoa.learners.InstanceContentEvent;
-import com.yahoo.labs.samoa.moa.streams.InstanceStream;
-import com.yahoo.labs.samoa.topology.Stream;
-
 /**
  * The Class StreamSourceProcessor.
  */
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/streams/fs/FileStreamSource.java b/samoa-api/src/main/java/org/apache/samoa/streams/fs/FileStreamSource.java
similarity index 97%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/streams/fs/FileStreamSource.java
rename to samoa-api/src/main/java/org/apache/samoa/streams/fs/FileStreamSource.java
index d14ebfc..32552a5 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/streams/fs/FileStreamSource.java
+++ b/samoa-api/src/main/java/org/apache/samoa/streams/fs/FileStreamSource.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.streams.fs;
+package org.apache.samoa.streams.fs;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/streams/fs/HDFSFileStreamSource.java b/samoa-api/src/main/java/org/apache/samoa/streams/fs/HDFSFileStreamSource.java
similarity index 98%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/streams/fs/HDFSFileStreamSource.java
rename to samoa-api/src/main/java/org/apache/samoa/streams/fs/HDFSFileStreamSource.java
index 3fabcc7..00abd1a 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/streams/fs/HDFSFileStreamSource.java
+++ b/samoa-api/src/main/java/org/apache/samoa/streams/fs/HDFSFileStreamSource.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.streams.fs;
+package org.apache.samoa.streams.fs;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/streams/fs/LocalFileStreamSource.java b/samoa-api/src/main/java/org/apache/samoa/streams/fs/LocalFileStreamSource.java
similarity index 98%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/streams/fs/LocalFileStreamSource.java
rename to samoa-api/src/main/java/org/apache/samoa/streams/fs/LocalFileStreamSource.java
index b9d9b9e..129d247 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/streams/fs/LocalFileStreamSource.java
+++ b/samoa-api/src/main/java/org/apache/samoa/streams/fs/LocalFileStreamSource.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.streams.fs;
+package org.apache.samoa.streams.fs;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/tasks/ClusteringEvaluation.java b/samoa-api/src/main/java/org/apache/samoa/tasks/ClusteringEvaluation.java
similarity index 89%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/tasks/ClusteringEvaluation.java
rename to samoa-api/src/main/java/org/apache/samoa/tasks/ClusteringEvaluation.java
index d906b9f..a5c0ef1 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/tasks/ClusteringEvaluation.java
+++ b/samoa-api/src/main/java/org/apache/samoa/tasks/ClusteringEvaluation.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.tasks;
+package org.apache.samoa.tasks;
 
 /*
  * #%L
@@ -22,6 +22,18 @@
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
+import org.apache.samoa.evaluation.ClusteringEvaluatorProcessor;
+import org.apache.samoa.learners.Learner;
+import org.apache.samoa.learners.clusterers.simple.ClusteringDistributorProcessor;
+import org.apache.samoa.learners.clusterers.simple.DistributedClusterer;
+import org.apache.samoa.moa.streams.InstanceStream;
+import org.apache.samoa.moa.streams.clustering.ClusteringStream;
+import org.apache.samoa.moa.streams.clustering.RandomRBFGeneratorEvents;
+import org.apache.samoa.streams.ClusteringEntranceProcessor;
+import org.apache.samoa.topology.ComponentFactory;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.topology.Topology;
+import org.apache.samoa.topology.TopologyBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -31,18 +43,6 @@
 import com.github.javacliparser.FloatOption;
 import com.github.javacliparser.IntOption;
 import com.github.javacliparser.StringOption;
-import com.yahoo.labs.samoa.evaluation.ClusteringEvaluatorProcessor;
-import com.yahoo.labs.samoa.learners.Learner;
-import com.yahoo.labs.samoa.learners.clusterers.simple.ClusteringDistributorProcessor;
-import com.yahoo.labs.samoa.learners.clusterers.simple.DistributedClusterer;
-import com.yahoo.labs.samoa.moa.streams.InstanceStream;
-import com.yahoo.labs.samoa.moa.streams.clustering.ClusteringStream;
-import com.yahoo.labs.samoa.moa.streams.clustering.RandomRBFGeneratorEvents;
-import com.yahoo.labs.samoa.streams.ClusteringEntranceProcessor;
-import com.yahoo.labs.samoa.topology.ComponentFactory;
-import com.yahoo.labs.samoa.topology.Stream;
-import com.yahoo.labs.samoa.topology.Topology;
-import com.yahoo.labs.samoa.topology.TopologyBuilder;
 
 /**
  * A task that runs and evaluates a distributed clustering algorithm.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/tasks/PrequentialEvaluation.java b/samoa-api/src/main/java/org/apache/samoa/tasks/PrequentialEvaluation.java
similarity index 87%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/tasks/PrequentialEvaluation.java
rename to samoa-api/src/main/java/org/apache/samoa/tasks/PrequentialEvaluation.java
index 6de0b87..575adad 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/tasks/PrequentialEvaluation.java
+++ b/samoa-api/src/main/java/org/apache/samoa/tasks/PrequentialEvaluation.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.tasks;
+package org.apache.samoa.tasks;
 
 /*
  * #%L
@@ -22,6 +22,23 @@
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
+import org.apache.samoa.evaluation.BasicClassificationPerformanceEvaluator;
+import org.apache.samoa.evaluation.BasicRegressionPerformanceEvaluator;
+import org.apache.samoa.evaluation.ClassificationPerformanceEvaluator;
+import org.apache.samoa.evaluation.EvaluatorProcessor;
+import org.apache.samoa.evaluation.PerformanceEvaluator;
+import org.apache.samoa.evaluation.RegressionPerformanceEvaluator;
+import org.apache.samoa.learners.ClassificationLearner;
+import org.apache.samoa.learners.Learner;
+import org.apache.samoa.learners.RegressionLearner;
+import org.apache.samoa.learners.classifiers.trees.VerticalHoeffdingTree;
+import org.apache.samoa.moa.streams.InstanceStream;
+import org.apache.samoa.moa.streams.generators.RandomTreeGenerator;
+import org.apache.samoa.streams.PrequentialSourceProcessor;
+import org.apache.samoa.topology.ComponentFactory;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.topology.Topology;
+import org.apache.samoa.topology.TopologyBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -30,23 +47,6 @@
 import com.github.javacliparser.FileOption;
 import com.github.javacliparser.IntOption;
 import com.github.javacliparser.StringOption;
-import com.yahoo.labs.samoa.evaluation.BasicClassificationPerformanceEvaluator;
-import com.yahoo.labs.samoa.evaluation.BasicRegressionPerformanceEvaluator;
-import com.yahoo.labs.samoa.evaluation.ClassificationPerformanceEvaluator;
-import com.yahoo.labs.samoa.evaluation.PerformanceEvaluator;
-import com.yahoo.labs.samoa.evaluation.EvaluatorProcessor;
-import com.yahoo.labs.samoa.evaluation.RegressionPerformanceEvaluator;
-import com.yahoo.labs.samoa.learners.ClassificationLearner;
-import com.yahoo.labs.samoa.learners.Learner;
-import com.yahoo.labs.samoa.learners.RegressionLearner;
-import com.yahoo.labs.samoa.learners.classifiers.trees.VerticalHoeffdingTree;
-import com.yahoo.labs.samoa.moa.streams.InstanceStream;
-import com.yahoo.labs.samoa.moa.streams.generators.RandomTreeGenerator;
-import com.yahoo.labs.samoa.streams.PrequentialSourceProcessor;
-import com.yahoo.labs.samoa.topology.ComponentFactory;
-import com.yahoo.labs.samoa.topology.Stream;
-import com.yahoo.labs.samoa.topology.Topology;
-import com.yahoo.labs.samoa.topology.TopologyBuilder;
 
 /**
  * Prequential Evaluation task is a scheme in evaluating performance of online classifiers which uses each instance for
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/tasks/Task.java b/samoa-api/src/main/java/org/apache/samoa/tasks/Task.java
similarity index 91%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/tasks/Task.java
rename to samoa-api/src/main/java/org/apache/samoa/tasks/Task.java
index 52e3485..73d9be8 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/tasks/Task.java
+++ b/samoa-api/src/main/java/org/apache/samoa/tasks/Task.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.tasks;
+package org.apache.samoa.tasks;
 
 /*
  * #%L
@@ -20,8 +20,8 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.topology.ComponentFactory;
-import com.yahoo.labs.samoa.topology.Topology;
+import org.apache.samoa.topology.ComponentFactory;
+import org.apache.samoa.topology.Topology;
 
 /**
  * Task interface, the mother of all SAMOA tasks!
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/topology/AbstractEntranceProcessingItem.java b/samoa-api/src/main/java/org/apache/samoa/topology/AbstractEntranceProcessingItem.java
similarity index 96%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/topology/AbstractEntranceProcessingItem.java
rename to samoa-api/src/main/java/org/apache/samoa/topology/AbstractEntranceProcessingItem.java
index 6f6069b..d1d22ba 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/topology/AbstractEntranceProcessingItem.java
+++ b/samoa-api/src/main/java/org/apache/samoa/topology/AbstractEntranceProcessingItem.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology;
+package org.apache.samoa.topology;
 
 /*
  * #%L
@@ -20,7 +20,7 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.core.EntranceProcessor;
+import org.apache.samoa.core.EntranceProcessor;
 
 /**
  * Helper class for EntranceProcessingItem implementation.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/topology/AbstractProcessingItem.java b/samoa-api/src/main/java/org/apache/samoa/topology/AbstractProcessingItem.java
similarity index 96%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/topology/AbstractProcessingItem.java
rename to samoa-api/src/main/java/org/apache/samoa/topology/AbstractProcessingItem.java
index 58c4d7a..112d76e 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/topology/AbstractProcessingItem.java
+++ b/samoa-api/src/main/java/org/apache/samoa/topology/AbstractProcessingItem.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology;
+package org.apache.samoa.topology;
 
 /*
  * #%L
@@ -20,8 +20,8 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.utils.PartitioningScheme;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.utils.PartitioningScheme;
 
 /**
  * Abstract ProcessingItem
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/topology/AbstractStream.java b/samoa-api/src/main/java/org/apache/samoa/topology/AbstractStream.java
similarity index 96%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/topology/AbstractStream.java
rename to samoa-api/src/main/java/org/apache/samoa/topology/AbstractStream.java
index cab7d3a..b79cc61 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/topology/AbstractStream.java
+++ b/samoa-api/src/main/java/org/apache/samoa/topology/AbstractStream.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology;
+package org.apache.samoa.topology;
 
 /*
  * #%L
@@ -20,7 +20,7 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.core.ContentEvent;
+import org.apache.samoa.core.ContentEvent;
 
 /**
  * Abstract Stream
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/topology/AbstractTopology.java b/samoa-api/src/main/java/org/apache/samoa/topology/AbstractTopology.java
similarity index 98%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/topology/AbstractTopology.java
rename to samoa-api/src/main/java/org/apache/samoa/topology/AbstractTopology.java
index fd59f26..9d90c41 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/topology/AbstractTopology.java
+++ b/samoa-api/src/main/java/org/apache/samoa/topology/AbstractTopology.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology;
+package org.apache.samoa.topology;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/topology/ComponentFactory.java b/samoa-api/src/main/java/org/apache/samoa/topology/ComponentFactory.java
similarity index 94%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/topology/ComponentFactory.java
rename to samoa-api/src/main/java/org/apache/samoa/topology/ComponentFactory.java
index 0482972..d1e0c13 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/topology/ComponentFactory.java
+++ b/samoa-api/src/main/java/org/apache/samoa/topology/ComponentFactory.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology;
+package org.apache.samoa.topology;
 
 /*
  * #%L
@@ -20,8 +20,8 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.core.EntranceProcessor;
-import com.yahoo.labs.samoa.core.Processor;
+import org.apache.samoa.core.EntranceProcessor;
+import org.apache.samoa.core.Processor;
 
 /**
  * ComponentFactory interface. Provides platform specific components.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/topology/EntranceProcessingItem.java b/samoa-api/src/main/java/org/apache/samoa/topology/EntranceProcessingItem.java
similarity index 92%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/topology/EntranceProcessingItem.java
rename to samoa-api/src/main/java/org/apache/samoa/topology/EntranceProcessingItem.java
index 04cde38..6fc0ed3 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/topology/EntranceProcessingItem.java
+++ b/samoa-api/src/main/java/org/apache/samoa/topology/EntranceProcessingItem.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology;
+package org.apache.samoa.topology;
 
 /*
  * #%L
@@ -20,7 +20,7 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.core.EntranceProcessor;
+import org.apache.samoa.core.EntranceProcessor;
 
 /**
  * Entrance processing item interface.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/topology/IProcessingItem.java b/samoa-api/src/main/java/org/apache/samoa/topology/IProcessingItem.java
similarity index 92%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/topology/IProcessingItem.java
rename to samoa-api/src/main/java/org/apache/samoa/topology/IProcessingItem.java
index b93612d..af86bde 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/topology/IProcessingItem.java
+++ b/samoa-api/src/main/java/org/apache/samoa/topology/IProcessingItem.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology;
+package org.apache.samoa.topology;
 
 /*
  * #%L
@@ -20,7 +20,7 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.core.Processor;
+import org.apache.samoa.core.Processor;
 
 /**
  * ProcessingItem interface specific for entrance processing items.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/topology/ISubmitter.java b/samoa-api/src/main/java/org/apache/samoa/topology/ISubmitter.java
similarity index 92%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/topology/ISubmitter.java
rename to samoa-api/src/main/java/org/apache/samoa/topology/ISubmitter.java
index 253ba30..b576982 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/topology/ISubmitter.java
+++ b/samoa-api/src/main/java/org/apache/samoa/topology/ISubmitter.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology;
+package org.apache.samoa.topology;
 
 /*
  * #%L
@@ -20,7 +20,7 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.tasks.Task;
+import org.apache.samoa.tasks.Task;
 
 /**
  * Submitter interface for programatically deploying platform specific topologies.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/topology/LocalEntranceProcessingItem.java b/samoa-api/src/main/java/org/apache/samoa/topology/LocalEntranceProcessingItem.java
similarity index 94%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/topology/LocalEntranceProcessingItem.java
rename to samoa-api/src/main/java/org/apache/samoa/topology/LocalEntranceProcessingItem.java
index faeb0d3..3cfa736 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/topology/LocalEntranceProcessingItem.java
+++ b/samoa-api/src/main/java/org/apache/samoa/topology/LocalEntranceProcessingItem.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology;
+package org.apache.samoa.topology;
 
 /*
  * #%L
@@ -20,8 +20,8 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.EntranceProcessor;
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.EntranceProcessor;
 
 /**
  * Implementation of EntranceProcessingItem for local engines (Simple, Multithreads)
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/topology/ProcessingItem.java b/samoa-api/src/main/java/org/apache/samoa/topology/ProcessingItem.java
similarity index 97%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/topology/ProcessingItem.java
rename to samoa-api/src/main/java/org/apache/samoa/topology/ProcessingItem.java
index c1903b7..edb4aaa 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/topology/ProcessingItem.java
+++ b/samoa-api/src/main/java/org/apache/samoa/topology/ProcessingItem.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology;
+package org.apache.samoa.topology;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/topology/Stream.java b/samoa-api/src/main/java/org/apache/samoa/topology/Stream.java
similarity index 93%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/topology/Stream.java
rename to samoa-api/src/main/java/org/apache/samoa/topology/Stream.java
index 49d4e7f..7aadb97 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/topology/Stream.java
+++ b/samoa-api/src/main/java/org/apache/samoa/topology/Stream.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology;
+package org.apache.samoa.topology;
 
 /*
  * #%L
@@ -20,7 +20,7 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.core.ContentEvent;
+import org.apache.samoa.core.ContentEvent;
 
 /**
  * Stream interface.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/topology/Topology.java b/samoa-api/src/main/java/org/apache/samoa/topology/Topology.java
similarity index 97%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/topology/Topology.java
rename to samoa-api/src/main/java/org/apache/samoa/topology/Topology.java
index 7084377..41cbdd0 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/topology/Topology.java
+++ b/samoa-api/src/main/java/org/apache/samoa/topology/Topology.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology;
+package org.apache.samoa.topology;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/topology/TopologyBuilder.java b/samoa-api/src/main/java/org/apache/samoa/topology/TopologyBuilder.java
similarity index 98%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/topology/TopologyBuilder.java
rename to samoa-api/src/main/java/org/apache/samoa/topology/TopologyBuilder.java
index dd747cf..d67b609 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/topology/TopologyBuilder.java
+++ b/samoa-api/src/main/java/org/apache/samoa/topology/TopologyBuilder.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology;
+package org.apache.samoa.topology;
 
 /*
  * #%L
@@ -22,9 +22,10 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.samoa.core.EntranceProcessor;
+import org.apache.samoa.core.Processor;
+
 import com.google.common.base.Preconditions;
-import com.yahoo.labs.samoa.core.EntranceProcessor;
-import com.yahoo.labs.samoa.core.Processor;
 
 /**
  * Builder class that creates topology components and assemble them together.
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/utils/PartitioningScheme.java b/samoa-api/src/main/java/org/apache/samoa/utils/PartitioningScheme.java
similarity index 95%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/utils/PartitioningScheme.java
rename to samoa-api/src/main/java/org/apache/samoa/utils/PartitioningScheme.java
index 61dc55c..374120d 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/utils/PartitioningScheme.java
+++ b/samoa-api/src/main/java/org/apache/samoa/utils/PartitioningScheme.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.utils;
+package org.apache.samoa.utils;
 
 /*
  * #%L
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/utils/StreamDestination.java b/samoa-api/src/main/java/org/apache/samoa/utils/StreamDestination.java
similarity index 94%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/utils/StreamDestination.java
rename to samoa-api/src/main/java/org/apache/samoa/utils/StreamDestination.java
index b5e3e0e..be82982 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/utils/StreamDestination.java
+++ b/samoa-api/src/main/java/org/apache/samoa/utils/StreamDestination.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.utils;
+package org.apache.samoa.utils;
 
 /*
  * #%L
@@ -20,7 +20,7 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.topology.IProcessingItem;
+import org.apache.samoa.topology.IProcessingItem;
 
 /**
  * Represents one destination for streams. It has the info of: the ProcessingItem, parallelismHint, and partitioning
diff --git a/samoa-api/src/main/java/com/yahoo/labs/samoa/utils/Utils.java b/samoa-api/src/main/java/org/apache/samoa/utils/Utils.java
similarity index 99%
rename from samoa-api/src/main/java/com/yahoo/labs/samoa/utils/Utils.java
rename to samoa-api/src/main/java/org/apache/samoa/utils/Utils.java
index 7c9212e..f8ae5ef 100644
--- a/samoa-api/src/main/java/com/yahoo/labs/samoa/utils/Utils.java
+++ b/samoa-api/src/main/java/org/apache/samoa/utils/Utils.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.utils;
+package org.apache.samoa.utils;
 
 /*
  * #%L
diff --git a/samoa-api/src/test/java/com/yahoo/labs/samoa/core/DoubleVectorTest.java b/samoa-api/src/test/java/org/apache/samoa/core/DoubleVectorTest.java
similarity index 97%
rename from samoa-api/src/test/java/com/yahoo/labs/samoa/core/DoubleVectorTest.java
rename to samoa-api/src/test/java/org/apache/samoa/core/DoubleVectorTest.java
index 68eec91..71b8f1b 100644
--- a/samoa-api/src/test/java/com/yahoo/labs/samoa/core/DoubleVectorTest.java
+++ b/samoa-api/src/test/java/org/apache/samoa/core/DoubleVectorTest.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.core;
+package org.apache.samoa.core;
 
 /*
  * #%L
@@ -23,6 +23,7 @@
 import static org.hamcrest.CoreMatchers.*;
 import static org.junit.Assert.*;
 
+import org.apache.samoa.core.DoubleVector;
 import org.junit.Before;
 import org.junit.Test;
 
diff --git a/samoa-api/src/test/java/com/yahoo/labs/samoa/streams/fs/HDFSFileStreamSourceTest.java b/samoa-api/src/test/java/org/apache/samoa/streams/fs/HDFSFileStreamSourceTest.java
similarity index 98%
rename from samoa-api/src/test/java/com/yahoo/labs/samoa/streams/fs/HDFSFileStreamSourceTest.java
rename to samoa-api/src/test/java/org/apache/samoa/streams/fs/HDFSFileStreamSourceTest.java
index d64ca0e..eaba37d 100644
--- a/samoa-api/src/test/java/com/yahoo/labs/samoa/streams/fs/HDFSFileStreamSourceTest.java
+++ b/samoa-api/src/test/java/org/apache/samoa/streams/fs/HDFSFileStreamSourceTest.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.streams.fs;
+package org.apache.samoa.streams.fs;
 
 /*
  * #%L
@@ -38,6 +38,7 @@
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.FSDataOutputStream;
 import org.apache.hadoop.fs.Path;
+import org.apache.samoa.streams.fs.HDFSFileStreamSource;
 
 import static org.junit.Assert.*;
 
diff --git a/samoa-api/src/test/java/com/yahoo/labs/samoa/streams/fs/LocalFileStreamSourceTest.java b/samoa-api/src/test/java/org/apache/samoa/streams/fs/LocalFileStreamSourceTest.java
similarity index 98%
rename from samoa-api/src/test/java/com/yahoo/labs/samoa/streams/fs/LocalFileStreamSourceTest.java
rename to samoa-api/src/test/java/org/apache/samoa/streams/fs/LocalFileStreamSourceTest.java
index 5898421..374ebd1 100644
--- a/samoa-api/src/test/java/com/yahoo/labs/samoa/streams/fs/LocalFileStreamSourceTest.java
+++ b/samoa-api/src/test/java/org/apache/samoa/streams/fs/LocalFileStreamSourceTest.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.streams.fs;
+package org.apache.samoa.streams.fs;
 
 /*
  * #%L
@@ -41,6 +41,7 @@
 import org.junit.Before;
 import org.junit.Test;
 import org.apache.commons.io.FileUtils;
+import org.apache.samoa.streams.fs.LocalFileStreamSource;
 
 public class LocalFileStreamSourceTest {
   private static final String BASE_DIR = "localfsTest";
diff --git a/samoa-flink/pom.xml b/samoa-flink/pom.xml
index f00fe3c..f56ac70 100644
--- a/samoa-flink/pom.xml
+++ b/samoa-flink/pom.xml
@@ -42,7 +42,7 @@
 
     <artifactId>samoa-flink</artifactId>
     <parent>
-        <groupId>com.yahoo.labs.samoa</groupId>
+        <groupId>org.apache.samoa</groupId>
         <artifactId>samoa</artifactId>
         <version>0.3.0-SNAPSHOT</version>
     </parent>
@@ -51,7 +51,7 @@
 
     <dependencies>
         <dependency>
-            <groupId>com.yahoo.labs.samoa</groupId>
+            <groupId>org.apache.samoa</groupId>
             <artifactId>samoa-api</artifactId>
             <version>${project.version}</version>
             <exclusions>
@@ -105,7 +105,7 @@
                         </manifestEntries>
                         <manifest>
                             <addClasspath>true</addClasspath>
-                            <mainClass>com.yahoo.labs.flink.FlinkDoTask</mainClass>
+                            <mainClass>org.apache.samoa.flink.FlinkDoTask</mainClass>
                         </manifest>
                     </archive>
                 </configuration>
diff --git a/samoa-flink/src/main/java/com/yahoo/labs/flink/FlinkDoTask.java b/samoa-flink/src/main/java/org/apache/samoa/flink/FlinkDoTask.java
similarity index 83%
rename from samoa-flink/src/main/java/com/yahoo/labs/flink/FlinkDoTask.java
rename to samoa-flink/src/main/java/org/apache/samoa/flink/FlinkDoTask.java
index 6069de9..cd0b82c 100644
--- a/samoa-flink/src/main/java/com/yahoo/labs/flink/FlinkDoTask.java
+++ b/samoa-flink/src/main/java/org/apache/samoa/flink/FlinkDoTask.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.flink;
+package org.apache.samoa.flink;
 
 /*
  * #%L
@@ -23,15 +23,16 @@
 import com.github.javacliparser.ClassOption;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
-import com.yahoo.labs.flink.com.yahoo.labs.flink.helpers.CircleDetection;
-import com.yahoo.labs.flink.com.yahoo.labs.flink.helpers.Utils;
-import com.yahoo.labs.flink.topology.impl.FlinkComponentFactory;
-import com.yahoo.labs.flink.topology.impl.FlinkProcessingItem;
-import com.yahoo.labs.flink.topology.impl.FlinkStream;
-import com.yahoo.labs.flink.topology.impl.FlinkTopology;
-import com.yahoo.labs.samoa.tasks.Task;
+
 import org.apache.flink.api.java.tuple.Tuple3;
 import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
+import org.apache.samoa.flink.helpers.CircleDetection;
+import org.apache.samoa.flink.helpers.Utils;
+import org.apache.samoa.flink.topology.impl.FlinkComponentFactory;
+import org.apache.samoa.flink.topology.impl.FlinkProcessingItem;
+import org.apache.samoa.flink.topology.impl.FlinkStream;
+import org.apache.samoa.flink.topology.impl.FlinkTopology;
+import org.apache.samoa.tasks.Task;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/samoa-flink/src/main/java/com/yahoo/labs/flink/com/yahoo/labs/flink/helpers/CircleDetection.java b/samoa-flink/src/main/java/org/apache/samoa/flink/helpers/CircleDetection.java
similarity index 97%
rename from samoa-flink/src/main/java/com/yahoo/labs/flink/com/yahoo/labs/flink/helpers/CircleDetection.java
rename to samoa-flink/src/main/java/org/apache/samoa/flink/helpers/CircleDetection.java
index a832ee9..a5a3b9d 100644
--- a/samoa-flink/src/main/java/com/yahoo/labs/flink/com/yahoo/labs/flink/helpers/CircleDetection.java
+++ b/samoa-flink/src/main/java/org/apache/samoa/flink/helpers/CircleDetection.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.flink.com.yahoo.labs.flink.helpers;
+package org.apache.samoa.flink.helpers;
 
 /*
  * #%L
diff --git a/samoa-flink/src/main/java/com/yahoo/labs/flink/com/yahoo/labs/flink/helpers/Utils.java b/samoa-flink/src/main/java/org/apache/samoa/flink/helpers/Utils.java
similarity index 90%
rename from samoa-flink/src/main/java/com/yahoo/labs/flink/com/yahoo/labs/flink/helpers/Utils.java
rename to samoa-flink/src/main/java/org/apache/samoa/flink/helpers/Utils.java
index fe1b960..38b4bdc 100644
--- a/samoa-flink/src/main/java/com/yahoo/labs/flink/com/yahoo/labs/flink/helpers/Utils.java
+++ b/samoa-flink/src/main/java/org/apache/samoa/flink/helpers/Utils.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.flink.com.yahoo.labs.flink.helpers;
+package org.apache.samoa.flink.helpers;
 
 /*
  * #%L
@@ -22,15 +22,15 @@
 
 
 
-import com.yahoo.labs.flink.topology.impl.SamoaType;
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.utils.PartitioningScheme;
 import org.apache.flink.api.common.functions.FilterFunction;
 import org.apache.flink.api.common.typeinfo.TypeInformation;
 import org.apache.flink.api.java.functions.KeySelector;
 import org.apache.flink.api.java.typeutils.TupleTypeInfo;
 import org.apache.flink.api.java.typeutils.TypeExtractor;
 import org.apache.flink.streaming.api.datastream.DataStream;
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.flink.topology.impl.SamoaType;
+import org.apache.samoa.utils.PartitioningScheme;
 
 import java.util.List;
 
diff --git a/samoa-flink/src/main/java/com/yahoo/labs/flink/topology/impl/FlinkComponent.java b/samoa-flink/src/main/java/org/apache/samoa/flink/topology/impl/FlinkComponent.java
similarity index 97%
rename from samoa-flink/src/main/java/com/yahoo/labs/flink/topology/impl/FlinkComponent.java
rename to samoa-flink/src/main/java/org/apache/samoa/flink/topology/impl/FlinkComponent.java
index 70a7838..b61f590 100644
--- a/samoa-flink/src/main/java/com/yahoo/labs/flink/topology/impl/FlinkComponent.java
+++ b/samoa-flink/src/main/java/org/apache/samoa/flink/topology/impl/FlinkComponent.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.flink.topology.impl;
+package org.apache.samoa.flink.topology.impl;
 
 /*
  * #%L
diff --git a/samoa-flink/src/main/java/com/yahoo/labs/flink/topology/impl/FlinkComponentFactory.java b/samoa-flink/src/main/java/org/apache/samoa/flink/topology/impl/FlinkComponentFactory.java
similarity index 90%
rename from samoa-flink/src/main/java/com/yahoo/labs/flink/topology/impl/FlinkComponentFactory.java
rename to samoa-flink/src/main/java/org/apache/samoa/flink/topology/impl/FlinkComponentFactory.java
index fca0c1a..93e4626 100644
--- a/samoa-flink/src/main/java/com/yahoo/labs/flink/topology/impl/FlinkComponentFactory.java
+++ b/samoa-flink/src/main/java/org/apache/samoa/flink/topology/impl/FlinkComponentFactory.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.flink.topology.impl;
+package org.apache.samoa.flink.topology.impl;
 
 /*
  * #%L
@@ -21,10 +21,10 @@
  */
 
 
-import com.yahoo.labs.samoa.core.EntranceProcessor;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.topology.*;
 import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
+import org.apache.samoa.core.EntranceProcessor;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.topology.*;
 
 /**
  * An implementation of SAMOA's ComponentFactory for Apache Flink
diff --git a/samoa-flink/src/main/java/com/yahoo/labs/flink/topology/impl/FlinkEntranceProcessingItem.java b/samoa-flink/src/main/java/org/apache/samoa/flink/topology/impl/FlinkEntranceProcessingItem.java
similarity index 91%
rename from samoa-flink/src/main/java/com/yahoo/labs/flink/topology/impl/FlinkEntranceProcessingItem.java
rename to samoa-flink/src/main/java/org/apache/samoa/flink/topology/impl/FlinkEntranceProcessingItem.java
index 5dca509..e00874b 100644
--- a/samoa-flink/src/main/java/com/yahoo/labs/flink/topology/impl/FlinkEntranceProcessingItem.java
+++ b/samoa-flink/src/main/java/org/apache/samoa/flink/topology/impl/FlinkEntranceProcessingItem.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.flink.topology.impl;
+package org.apache.samoa.flink.topology.impl;
 
 /*
  * #%L
@@ -21,14 +21,14 @@
  */
 
 
-import com.yahoo.labs.flink.com.yahoo.labs.flink.helpers.Utils;
-import com.yahoo.labs.samoa.core.EntranceProcessor;
-import com.yahoo.labs.samoa.topology.AbstractEntranceProcessingItem;
 import org.apache.flink.configuration.Configuration;
 import org.apache.flink.streaming.api.datastream.DataStream;
 import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
 import org.apache.flink.streaming.api.function.source.RichSourceFunction;
 import org.apache.flink.util.Collector;
+import org.apache.samoa.core.EntranceProcessor;
+import org.apache.samoa.flink.helpers.Utils;
+import org.apache.samoa.topology.AbstractEntranceProcessingItem;
 
 import java.io.Serializable;
 
diff --git a/samoa-flink/src/main/java/com/yahoo/labs/flink/topology/impl/FlinkProcessingItem.java b/samoa-flink/src/main/java/org/apache/samoa/flink/topology/impl/FlinkProcessingItem.java
similarity index 94%
rename from samoa-flink/src/main/java/com/yahoo/labs/flink/topology/impl/FlinkProcessingItem.java
rename to samoa-flink/src/main/java/org/apache/samoa/flink/topology/impl/FlinkProcessingItem.java
index f92182e..3f5431c 100644
--- a/samoa-flink/src/main/java/com/yahoo/labs/flink/topology/impl/FlinkProcessingItem.java
+++ b/samoa-flink/src/main/java/org/apache/samoa/flink/topology/impl/FlinkProcessingItem.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.flink.topology.impl;
+package org.apache.samoa.flink.topology.impl;
 
 /*
  * #%L
@@ -22,18 +22,19 @@
 
 
 import com.google.common.collect.Lists;
-import com.yahoo.labs.flink.com.yahoo.labs.flink.helpers.Utils;
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.topology.ProcessingItem;
-import com.yahoo.labs.samoa.topology.Stream;
-import com.yahoo.labs.samoa.utils.PartitioningScheme;
+
 import org.apache.flink.api.common.functions.Function;
 import org.apache.flink.api.java.tuple.Tuple3;
 import org.apache.flink.configuration.Configuration;
 import org.apache.flink.streaming.api.datastream.DataStream;
 import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
 import org.apache.flink.streaming.api.invokable.StreamInvokable;
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.flink.helpers.Utils;
+import org.apache.samoa.topology.ProcessingItem;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.utils.PartitioningScheme;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/samoa-flink/src/main/java/com/yahoo/labs/flink/topology/impl/FlinkStream.java b/samoa-flink/src/main/java/org/apache/samoa/flink/topology/impl/FlinkStream.java
similarity index 91%
rename from samoa-flink/src/main/java/com/yahoo/labs/flink/topology/impl/FlinkStream.java
rename to samoa-flink/src/main/java/org/apache/samoa/flink/topology/impl/FlinkStream.java
index c5cb0ed..31617a7 100644
--- a/samoa-flink/src/main/java/com/yahoo/labs/flink/topology/impl/FlinkStream.java
+++ b/samoa-flink/src/main/java/org/apache/samoa/flink/topology/impl/FlinkStream.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.flink.topology.impl;
+package org.apache.samoa.flink.topology.impl;
 
 /*
  * #%L
@@ -22,10 +22,10 @@
 
 
 
-import com.yahoo.labs.flink.com.yahoo.labs.flink.helpers.Utils;
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.topology.AbstractStream;
 import org.apache.flink.streaming.api.datastream.DataStream;
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.flink.helpers.Utils;
+import org.apache.samoa.topology.AbstractStream;
 
 import java.io.Serializable;
 
diff --git a/samoa-flink/src/main/java/com/yahoo/labs/flink/topology/impl/FlinkTopology.java b/samoa-flink/src/main/java/org/apache/samoa/flink/topology/impl/FlinkTopology.java
similarity index 94%
rename from samoa-flink/src/main/java/com/yahoo/labs/flink/topology/impl/FlinkTopology.java
rename to samoa-flink/src/main/java/org/apache/samoa/flink/topology/impl/FlinkTopology.java
index f04d792..65c52c6 100644
--- a/samoa-flink/src/main/java/com/yahoo/labs/flink/topology/impl/FlinkTopology.java
+++ b/samoa-flink/src/main/java/org/apache/samoa/flink/topology/impl/FlinkTopology.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.flink.topology.impl;
+package org.apache.samoa.flink.topology.impl;
 
 /*
  * #%L
@@ -26,14 +26,15 @@
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
-import com.yahoo.labs.flink.com.yahoo.labs.flink.helpers.CircleDetection;
-import com.yahoo.labs.flink.com.yahoo.labs.flink.helpers.Utils;
-import com.yahoo.labs.samoa.topology.AbstractTopology;
-import com.yahoo.labs.samoa.topology.EntranceProcessingItem;
-import com.yahoo.labs.samoa.utils.PartitioningScheme;
+
 import org.apache.flink.api.java.tuple.Tuple3;
 import org.apache.flink.streaming.api.datastream.IterativeDataStream;
 import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
+import org.apache.samoa.flink.helpers.CircleDetection;
+import org.apache.samoa.flink.helpers.Utils;
+import org.apache.samoa.topology.AbstractTopology;
+import org.apache.samoa.topology.EntranceProcessingItem;
+import org.apache.samoa.utils.PartitioningScheme;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/samoa-flink/src/main/java/com/yahoo/labs/flink/topology/impl/SamoaType.java b/samoa-flink/src/main/java/org/apache/samoa/flink/topology/impl/SamoaType.java
similarity index 92%
rename from samoa-flink/src/main/java/com/yahoo/labs/flink/topology/impl/SamoaType.java
rename to samoa-flink/src/main/java/org/apache/samoa/flink/topology/impl/SamoaType.java
index 16d050a..c0f223f 100644
--- a/samoa-flink/src/main/java/com/yahoo/labs/flink/topology/impl/SamoaType.java
+++ b/samoa-flink/src/main/java/org/apache/samoa/flink/topology/impl/SamoaType.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.flink.topology.impl;
+package org.apache.samoa.flink.topology.impl;
 
 /*
  * #%L
@@ -23,8 +23,8 @@
 
 
 
-import com.yahoo.labs.samoa.core.ContentEvent;
 import org.apache.flink.api.java.tuple.Tuple3;
+import org.apache.samoa.core.ContentEvent;
 
 public class SamoaType extends Tuple3<String, ContentEvent, String> {
 	public SamoaType() {
diff --git a/samoa-instances/pom.xml b/samoa-instances/pom.xml
index b5372af..5415db9 100644
--- a/samoa-instances/pom.xml
+++ b/samoa-instances/pom.xml
@@ -31,7 +31,7 @@
 
   <artifactId>samoa-instances</artifactId>
   <parent>
-    <groupId>com.yahoo.labs.samoa</groupId>
+    <groupId>org.apache.samoa</groupId>
     <artifactId>samoa</artifactId>
     <version>0.3.0-SNAPSHOT</version>
   </parent>
diff --git a/samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/ArffLoader.java b/samoa-instances/src/main/java/org/apache/samoa/instances/ArffLoader.java
similarity index 99%
rename from samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/ArffLoader.java
rename to samoa-instances/src/main/java/org/apache/samoa/instances/ArffLoader.java
index dc22bb8..3d314f0 100644
--- a/samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/ArffLoader.java
+++ b/samoa-instances/src/main/java/org/apache/samoa/instances/ArffLoader.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.instances;
+package org.apache.samoa.instances;
 
 /*
  * #%L
diff --git a/samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/Attribute.java b/samoa-instances/src/main/java/org/apache/samoa/instances/Attribute.java
similarity index 98%
rename from samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/Attribute.java
rename to samoa-instances/src/main/java/org/apache/samoa/instances/Attribute.java
index 6ebd678..b1c9d8b 100644
--- a/samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/Attribute.java
+++ b/samoa-instances/src/main/java/org/apache/samoa/instances/Attribute.java
@@ -2,7 +2,7 @@
  * To change this template, choose Tools | Templates
  * and open the template in the editor.
  */
-package com.yahoo.labs.samoa.instances;
+package org.apache.samoa.instances;
 
 /*
  * #%L
diff --git a/samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/DenseInstance.java b/samoa-instances/src/main/java/org/apache/samoa/instances/DenseInstance.java
similarity index 97%
rename from samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/DenseInstance.java
rename to samoa-instances/src/main/java/org/apache/samoa/instances/DenseInstance.java
index 57d1bfd..1a1f5ce 100644
--- a/samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/DenseInstance.java
+++ b/samoa-instances/src/main/java/org/apache/samoa/instances/DenseInstance.java
@@ -2,7 +2,7 @@
  * To change this template, choose Tools | Templates
  * and open the template in the editor.
  */
-package com.yahoo.labs.samoa.instances;
+package org.apache.samoa.instances;
 
 /*
  * #%L
diff --git a/samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/DenseInstanceData.java b/samoa-instances/src/main/java/org/apache/samoa/instances/DenseInstanceData.java
similarity index 97%
rename from samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/DenseInstanceData.java
rename to samoa-instances/src/main/java/org/apache/samoa/instances/DenseInstanceData.java
index e5519e6..ecb2f88 100644
--- a/samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/DenseInstanceData.java
+++ b/samoa-instances/src/main/java/org/apache/samoa/instances/DenseInstanceData.java
@@ -2,7 +2,7 @@
  * To change this template, choose Tools | Templates
  * and open the template in the editor.
  */
-package com.yahoo.labs.samoa.instances;
+package org.apache.samoa.instances;
 
 /*
  * #%L
diff --git a/samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/Instance.java b/samoa-instances/src/main/java/org/apache/samoa/instances/Instance.java
similarity index 97%
rename from samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/Instance.java
rename to samoa-instances/src/main/java/org/apache/samoa/instances/Instance.java
index f16443f..ee99914 100644
--- a/samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/Instance.java
+++ b/samoa-instances/src/main/java/org/apache/samoa/instances/Instance.java
@@ -2,7 +2,7 @@
  * To change this template, choose Tools | Templates
  * and open the template in the editor.
  */
-package com.yahoo.labs.samoa.instances;
+package org.apache.samoa.instances;
 
 /*
  * #%L
diff --git a/samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/InstanceData.java b/samoa-instances/src/main/java/org/apache/samoa/instances/InstanceData.java
similarity index 96%
rename from samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/InstanceData.java
rename to samoa-instances/src/main/java/org/apache/samoa/instances/InstanceData.java
index 7b947a7..eca4145 100644
--- a/samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/InstanceData.java
+++ b/samoa-instances/src/main/java/org/apache/samoa/instances/InstanceData.java
@@ -2,7 +2,7 @@
  * To change this template, choose Tools | Templates
  * and open the template in the editor.
  */
-package com.yahoo.labs.samoa.instances;
+package org.apache.samoa.instances;
 
 /*
  * #%L
diff --git a/samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/InstanceInformation.java b/samoa-instances/src/main/java/org/apache/samoa/instances/InstanceInformation.java
similarity index 98%
rename from samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/InstanceInformation.java
rename to samoa-instances/src/main/java/org/apache/samoa/instances/InstanceInformation.java
index a4660df..639f065 100644
--- a/samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/InstanceInformation.java
+++ b/samoa-instances/src/main/java/org/apache/samoa/instances/InstanceInformation.java
@@ -2,7 +2,7 @@
  * To change this template, choose Tools | Templates
  * and open the template in the editor.
  */
-package com.yahoo.labs.samoa.instances;
+package org.apache.samoa.instances;
 
 /*
  * #%L
diff --git a/samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/Instances.java b/samoa-instances/src/main/java/org/apache/samoa/instances/Instances.java
similarity index 99%
rename from samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/Instances.java
rename to samoa-instances/src/main/java/org/apache/samoa/instances/Instances.java
index 306f4c1..556caaa 100644
--- a/samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/Instances.java
+++ b/samoa-instances/src/main/java/org/apache/samoa/instances/Instances.java
@@ -2,7 +2,7 @@
  * To change this template, choose Tools | Templates
  * and open the template in the editor.
  */
-package com.yahoo.labs.samoa.instances;
+package org.apache.samoa.instances;
 
 /*
  * #%L
diff --git a/samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/InstancesHeader.java b/samoa-instances/src/main/java/org/apache/samoa/instances/InstancesHeader.java
similarity index 98%
rename from samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/InstancesHeader.java
rename to samoa-instances/src/main/java/org/apache/samoa/instances/InstancesHeader.java
index cde079d..a5d5a74 100644
--- a/samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/InstancesHeader.java
+++ b/samoa-instances/src/main/java/org/apache/samoa/instances/InstancesHeader.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.instances;
+package org.apache.samoa.instances;
 
 /*
  * #%L
diff --git a/samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/SingleClassInstanceData.java b/samoa-instances/src/main/java/org/apache/samoa/instances/SingleClassInstanceData.java
similarity index 97%
rename from samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/SingleClassInstanceData.java
rename to samoa-instances/src/main/java/org/apache/samoa/instances/SingleClassInstanceData.java
index 317000e..dfb8474 100644
--- a/samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/SingleClassInstanceData.java
+++ b/samoa-instances/src/main/java/org/apache/samoa/instances/SingleClassInstanceData.java
@@ -2,7 +2,7 @@
  * To change this template, choose Tools | Templates
  * and open the template in the editor.
  */
-package com.yahoo.labs.samoa.instances;
+package org.apache.samoa.instances;
 
 /*
  * #%L
diff --git a/samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/SingleLabelInstance.java b/samoa-instances/src/main/java/org/apache/samoa/instances/SingleLabelInstance.java
similarity index 99%
rename from samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/SingleLabelInstance.java
rename to samoa-instances/src/main/java/org/apache/samoa/instances/SingleLabelInstance.java
index 96b9afe..4018d97 100644
--- a/samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/SingleLabelInstance.java
+++ b/samoa-instances/src/main/java/org/apache/samoa/instances/SingleLabelInstance.java
@@ -2,7 +2,7 @@
  * To change this template, choose Tools | Templates
  * and open the template in the editor.
  */
-package com.yahoo.labs.samoa.instances;
+package org.apache.samoa.instances;
 
 /*
  * #%L
diff --git a/samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/SparseInstance.java b/samoa-instances/src/main/java/org/apache/samoa/instances/SparseInstance.java
similarity index 96%
rename from samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/SparseInstance.java
rename to samoa-instances/src/main/java/org/apache/samoa/instances/SparseInstance.java
index d4d876c..54dd417 100644
--- a/samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/SparseInstance.java
+++ b/samoa-instances/src/main/java/org/apache/samoa/instances/SparseInstance.java
@@ -2,7 +2,7 @@
  * To change this template, choose Tools | Templates
  * and open the template in the editor.
  */
-package com.yahoo.labs.samoa.instances;
+package org.apache.samoa.instances;
 
 /*
  * #%L
diff --git a/samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/SparseInstanceData.java b/samoa-instances/src/main/java/org/apache/samoa/instances/SparseInstanceData.java
similarity index 98%
rename from samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/SparseInstanceData.java
rename to samoa-instances/src/main/java/org/apache/samoa/instances/SparseInstanceData.java
index 658af34..9c14b8f 100644
--- a/samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/SparseInstanceData.java
+++ b/samoa-instances/src/main/java/org/apache/samoa/instances/SparseInstanceData.java
@@ -2,7 +2,7 @@
  * To change this template, choose Tools | Templates
  * and open the template in the editor.
  */
-package com.yahoo.labs.samoa.instances;
+package org.apache.samoa.instances;
 
 /*
  * #%L
diff --git a/samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/Utils.java b/samoa-instances/src/main/java/org/apache/samoa/instances/Utils.java
similarity index 98%
rename from samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/Utils.java
rename to samoa-instances/src/main/java/org/apache/samoa/instances/Utils.java
index 993186c..73990bb 100644
--- a/samoa-instances/src/main/java/com/yahoo/labs/samoa/instances/Utils.java
+++ b/samoa-instances/src/main/java/org/apache/samoa/instances/Utils.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.instances;
+package org.apache.samoa.instances;
 
 /*
  * #%L
diff --git a/samoa-instances/src/test/java/com/yahoo/labs/samoa/instances/ArffLoaderTest.java b/samoa-instances/src/test/java/org/apache/samoa/instances/ArffLoaderTest.java
similarity index 95%
rename from samoa-instances/src/test/java/com/yahoo/labs/samoa/instances/ArffLoaderTest.java
rename to samoa-instances/src/test/java/org/apache/samoa/instances/ArffLoaderTest.java
index 62fd7b7..b9dbd25 100644
--- a/samoa-instances/src/test/java/com/yahoo/labs/samoa/instances/ArffLoaderTest.java
+++ b/samoa-instances/src/test/java/org/apache/samoa/instances/ArffLoaderTest.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.instances;
+package org.apache.samoa.instances;
 
 /*
  * #%L
@@ -20,6 +20,9 @@
  * #L%
  */
 
+import org.apache.samoa.instances.ArffLoader;
+import org.apache.samoa.instances.Instance;
+import org.apache.samoa.instances.InstanceInformation;
 import org.junit.Before;
 import org.junit.Test;
 
diff --git a/samoa-local/pom.xml b/samoa-local/pom.xml
index e309625..edfb410 100644
--- a/samoa-local/pom.xml
+++ b/samoa-local/pom.xml
@@ -30,19 +30,19 @@
   <description>Simple local engine for SAMOA</description>
   <artifactId>samoa-local</artifactId>
   <parent>
-    <groupId>com.yahoo.labs.samoa</groupId>
+    <groupId>org.apache.samoa</groupId>
     <artifactId>samoa</artifactId>
     <version>0.3.0-SNAPSHOT</version>
   </parent>
 
   <dependencies>
     <dependency>
-      <groupId>com.yahoo.labs.samoa</groupId>
+      <groupId>org.apache.samoa</groupId>
       <artifactId>samoa-api</artifactId>
       <version>${project.version}</version>
     </dependency>
     <dependency>
-      <groupId>com.yahoo.labs.samoa</groupId>
+      <groupId>org.apache.samoa</groupId>
       <artifactId>samoa-test</artifactId>
       <type>test-jar</type>
       <classifier>test-jar-with-dependencies</classifier>
diff --git a/samoa-local/src/main/java/com/yahoo/labs/samoa/LocalDoTask.java b/samoa-local/src/main/java/org/apache/samoa/LocalDoTask.java
similarity index 93%
rename from samoa-local/src/main/java/com/yahoo/labs/samoa/LocalDoTask.java
rename to samoa-local/src/main/java/org/apache/samoa/LocalDoTask.java
index 78f4ef5..0a8c3d0 100644
--- a/samoa-local/src/main/java/com/yahoo/labs/samoa/LocalDoTask.java
+++ b/samoa-local/src/main/java/org/apache/samoa/LocalDoTask.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa;
+package org.apache.samoa;
 
 /*
  * #%L
@@ -20,6 +20,9 @@
  * #L%
  */
 
+import org.apache.samoa.tasks.Task;
+import org.apache.samoa.topology.impl.SimpleComponentFactory;
+import org.apache.samoa.topology.impl.SimpleEngine;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -27,9 +30,6 @@
 import com.github.javacliparser.FlagOption;
 import com.github.javacliparser.IntOption;
 import com.github.javacliparser.Option;
-import com.yahoo.labs.samoa.tasks.Task;
-import com.yahoo.labs.samoa.topology.impl.SimpleComponentFactory;
-import com.yahoo.labs.samoa.topology.impl.SimpleEngine;
 
 /**
  * The Class DoTask.
diff --git a/samoa-local/src/main/java/com/yahoo/labs/samoa/topology/impl/SimpleComponentFactory.java b/samoa-local/src/main/java/org/apache/samoa/topology/impl/SimpleComponentFactory.java
similarity index 74%
rename from samoa-local/src/main/java/com/yahoo/labs/samoa/topology/impl/SimpleComponentFactory.java
rename to samoa-local/src/main/java/org/apache/samoa/topology/impl/SimpleComponentFactory.java
index 754b735..c18b72d 100644
--- a/samoa-local/src/main/java/com/yahoo/labs/samoa/topology/impl/SimpleComponentFactory.java
+++ b/samoa-local/src/main/java/org/apache/samoa/topology/impl/SimpleComponentFactory.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -20,14 +20,14 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.core.EntranceProcessor;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.topology.ComponentFactory;
-import com.yahoo.labs.samoa.topology.EntranceProcessingItem;
-import com.yahoo.labs.samoa.topology.IProcessingItem;
-import com.yahoo.labs.samoa.topology.ProcessingItem;
-import com.yahoo.labs.samoa.topology.Stream;
-import com.yahoo.labs.samoa.topology.Topology;
+import org.apache.samoa.core.EntranceProcessor;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.topology.ComponentFactory;
+import org.apache.samoa.topology.EntranceProcessingItem;
+import org.apache.samoa.topology.IProcessingItem;
+import org.apache.samoa.topology.ProcessingItem;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.topology.Topology;
 
 public class SimpleComponentFactory implements ComponentFactory {
 
diff --git a/samoa-local/src/main/java/com/yahoo/labs/samoa/topology/impl/SimpleEngine.java b/samoa-local/src/main/java/org/apache/samoa/topology/impl/SimpleEngine.java
similarity index 91%
rename from samoa-local/src/main/java/com/yahoo/labs/samoa/topology/impl/SimpleEngine.java
rename to samoa-local/src/main/java/org/apache/samoa/topology/impl/SimpleEngine.java
index b737695..06d03d3 100644
--- a/samoa-local/src/main/java/com/yahoo/labs/samoa/topology/impl/SimpleEngine.java
+++ b/samoa-local/src/main/java/org/apache/samoa/topology/impl/SimpleEngine.java
@@ -2,7 +2,7 @@
  * To change this template, choose Tools | Templates
  * and open the template in the editor.
  */
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -24,7 +24,7 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.topology.Topology;
+import org.apache.samoa.topology.Topology;
 
 public class SimpleEngine {
 
diff --git a/samoa-local/src/main/java/com/yahoo/labs/samoa/topology/impl/SimpleEntranceProcessingItem.java b/samoa-local/src/main/java/org/apache/samoa/topology/impl/SimpleEntranceProcessingItem.java
similarity index 85%
rename from samoa-local/src/main/java/com/yahoo/labs/samoa/topology/impl/SimpleEntranceProcessingItem.java
rename to samoa-local/src/main/java/org/apache/samoa/topology/impl/SimpleEntranceProcessingItem.java
index aaa2ddb..729ad31 100644
--- a/samoa-local/src/main/java/com/yahoo/labs/samoa/topology/impl/SimpleEntranceProcessingItem.java
+++ b/samoa-local/src/main/java/org/apache/samoa/topology/impl/SimpleEntranceProcessingItem.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -20,8 +20,8 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.core.EntranceProcessor;
-import com.yahoo.labs.samoa.topology.LocalEntranceProcessingItem;
+import org.apache.samoa.core.EntranceProcessor;
+import org.apache.samoa.topology.LocalEntranceProcessingItem;
 
 class SimpleEntranceProcessingItem extends LocalEntranceProcessingItem {
   public SimpleEntranceProcessingItem(EntranceProcessor processor) {
diff --git a/samoa-local/src/main/java/com/yahoo/labs/samoa/topology/impl/SimpleProcessingItem.java b/samoa-local/src/main/java/org/apache/samoa/topology/impl/SimpleProcessingItem.java
similarity index 84%
rename from samoa-local/src/main/java/com/yahoo/labs/samoa/topology/impl/SimpleProcessingItem.java
rename to samoa-local/src/main/java/org/apache/samoa/topology/impl/SimpleProcessingItem.java
index 3dd9f0b..1dd1562 100644
--- a/samoa-local/src/main/java/com/yahoo/labs/samoa/topology/impl/SimpleProcessingItem.java
+++ b/samoa-local/src/main/java/org/apache/samoa/topology/impl/SimpleProcessingItem.java
@@ -2,7 +2,7 @@
  * To change this template, choose Tools | Templates
  * and open the template in the editor.
  */
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -24,14 +24,14 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.topology.AbstractProcessingItem;
-import com.yahoo.labs.samoa.topology.IProcessingItem;
-import com.yahoo.labs.samoa.topology.ProcessingItem;
-import com.yahoo.labs.samoa.topology.Stream;
-import com.yahoo.labs.samoa.utils.PartitioningScheme;
-import com.yahoo.labs.samoa.utils.StreamDestination;
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.topology.AbstractProcessingItem;
+import org.apache.samoa.topology.IProcessingItem;
+import org.apache.samoa.topology.ProcessingItem;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.utils.PartitioningScheme;
+import org.apache.samoa.utils.StreamDestination;
 
 /**
  * 
diff --git a/samoa-local/src/main/java/com/yahoo/labs/samoa/topology/impl/SimpleStream.java b/samoa-local/src/main/java/org/apache/samoa/topology/impl/SimpleStream.java
similarity index 90%
rename from samoa-local/src/main/java/com/yahoo/labs/samoa/topology/impl/SimpleStream.java
rename to samoa-local/src/main/java/org/apache/samoa/topology/impl/SimpleStream.java
index 109e927..3137c60 100644
--- a/samoa-local/src/main/java/com/yahoo/labs/samoa/topology/impl/SimpleStream.java
+++ b/samoa-local/src/main/java/org/apache/samoa/topology/impl/SimpleStream.java
@@ -2,7 +2,7 @@
  * To change this template, choose Tools | Templates
  * and open the template in the editor.
  */
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -28,10 +28,10 @@
 import java.util.List;
 
 import org.apache.commons.lang3.builder.HashCodeBuilder;
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.topology.AbstractStream;
-import com.yahoo.labs.samoa.topology.IProcessingItem;
-import com.yahoo.labs.samoa.utils.StreamDestination;
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.topology.AbstractStream;
+import org.apache.samoa.topology.IProcessingItem;
+import org.apache.samoa.utils.StreamDestination;
 
 /**
  * 
diff --git a/samoa-local/src/main/java/com/yahoo/labs/samoa/topology/impl/SimpleTopology.java b/samoa-local/src/main/java/org/apache/samoa/topology/impl/SimpleTopology.java
similarity index 93%
rename from samoa-local/src/main/java/com/yahoo/labs/samoa/topology/impl/SimpleTopology.java
rename to samoa-local/src/main/java/org/apache/samoa/topology/impl/SimpleTopology.java
index 5ffa09e..660ebc0 100644
--- a/samoa-local/src/main/java/com/yahoo/labs/samoa/topology/impl/SimpleTopology.java
+++ b/samoa-local/src/main/java/org/apache/samoa/topology/impl/SimpleTopology.java
@@ -2,7 +2,7 @@
  * To change this template, choose Tools | Templates
  * and open the template in the editor.
  */
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -24,7 +24,7 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.topology.AbstractTopology;
+import org.apache.samoa.topology.AbstractTopology;
 
 public class SimpleTopology extends AbstractTopology {
   SimpleTopology(String name) {
diff --git a/samoa-local/src/test/java/com/yahoo/labs/samoa/AlgosTest.java b/samoa-local/src/test/java/org/apache/samoa/AlgosTest.java
similarity index 97%
rename from samoa-local/src/test/java/com/yahoo/labs/samoa/AlgosTest.java
rename to samoa-local/src/test/java/org/apache/samoa/AlgosTest.java
index 2f7c7e1..f35b92a 100644
--- a/samoa-local/src/test/java/com/yahoo/labs/samoa/AlgosTest.java
+++ b/samoa-local/src/test/java/org/apache/samoa/AlgosTest.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa;
+package org.apache.samoa;
 
 /*
  * #%L
@@ -20,6 +20,7 @@
  * #L%
  */
 
+import org.apache.samoa.LocalDoTask;
 import org.junit.Test;
 
 public class AlgosTest {
diff --git a/samoa-local/src/test/java/com/yahoo/labs/samoa/topology/impl/SimpleComponentFactoryTest.java b/samoa-local/src/test/java/org/apache/samoa/topology/impl/SimpleComponentFactoryTest.java
similarity index 82%
rename from samoa-local/src/test/java/com/yahoo/labs/samoa/topology/impl/SimpleComponentFactoryTest.java
rename to samoa-local/src/test/java/org/apache/samoa/topology/impl/SimpleComponentFactoryTest.java
index c43ef72..3085d4c 100644
--- a/samoa-local/src/test/java/com/yahoo/labs/samoa/topology/impl/SimpleComponentFactoryTest.java
+++ b/samoa-local/src/test/java/org/apache/samoa/topology/impl/SimpleComponentFactoryTest.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -24,16 +24,20 @@
 import mockit.Mocked;
 import mockit.Tested;
 
+import org.apache.samoa.core.EntranceProcessor;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.topology.EntranceProcessingItem;
+import org.apache.samoa.topology.ProcessingItem;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.topology.Topology;
+import org.apache.samoa.topology.impl.SimpleComponentFactory;
+import org.apache.samoa.topology.impl.SimpleEntranceProcessingItem;
+import org.apache.samoa.topology.impl.SimpleProcessingItem;
+import org.apache.samoa.topology.impl.SimpleStream;
+import org.apache.samoa.topology.impl.SimpleTopology;
 import org.junit.Before;
 import org.junit.Test;
 
-import com.yahoo.labs.samoa.core.EntranceProcessor;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.topology.EntranceProcessingItem;
-import com.yahoo.labs.samoa.topology.ProcessingItem;
-import com.yahoo.labs.samoa.topology.Stream;
-import com.yahoo.labs.samoa.topology.Topology;
-
 /**
  * @author Anh Thu Vu
  * 
diff --git a/samoa-local/src/test/java/com/yahoo/labs/samoa/topology/impl/SimpleEngineTest.java b/samoa-local/src/test/java/org/apache/samoa/topology/impl/SimpleEngineTest.java
similarity index 89%
rename from samoa-local/src/test/java/com/yahoo/labs/samoa/topology/impl/SimpleEngineTest.java
rename to samoa-local/src/test/java/org/apache/samoa/topology/impl/SimpleEngineTest.java
index da4be1e..59d5afe 100644
--- a/samoa-local/src/test/java/com/yahoo/labs/samoa/topology/impl/SimpleEngineTest.java
+++ b/samoa-local/src/test/java/org/apache/samoa/topology/impl/SimpleEngineTest.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -25,6 +25,8 @@
 import mockit.Tested;
 import mockit.Verifications;
 
+import org.apache.samoa.topology.impl.SimpleEngine;
+import org.apache.samoa.topology.impl.SimpleTopology;
 import org.junit.Test;
 
 /**
diff --git a/samoa-local/src/test/java/com/yahoo/labs/samoa/topology/impl/SimpleEntranceProcessingItemTest.java b/samoa-local/src/test/java/org/apache/samoa/topology/impl/SimpleEntranceProcessingItemTest.java
similarity index 94%
rename from samoa-local/src/test/java/com/yahoo/labs/samoa/topology/impl/SimpleEntranceProcessingItemTest.java
rename to samoa-local/src/test/java/org/apache/samoa/topology/impl/SimpleEntranceProcessingItemTest.java
index 8c1ccaf..41d1f46 100644
--- a/samoa-local/src/test/java/com/yahoo/labs/samoa/topology/impl/SimpleEntranceProcessingItemTest.java
+++ b/samoa-local/src/test/java/org/apache/samoa/topology/impl/SimpleEntranceProcessingItemTest.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -26,14 +26,14 @@
 import mockit.Tested;
 import mockit.Verifications;
 
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.EntranceProcessor;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.topology.impl.SimpleEntranceProcessingItem;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.EntranceProcessor;
-import com.yahoo.labs.samoa.topology.Stream;
-
 /**
  * @author Anh Thu Vu
  * 
diff --git a/samoa-local/src/test/java/com/yahoo/labs/samoa/topology/impl/SimpleProcessingItemTest.java b/samoa-local/src/test/java/org/apache/samoa/topology/impl/SimpleProcessingItemTest.java
similarity index 89%
rename from samoa-local/src/test/java/com/yahoo/labs/samoa/topology/impl/SimpleProcessingItemTest.java
rename to samoa-local/src/test/java/org/apache/samoa/topology/impl/SimpleProcessingItemTest.java
index cd076fe..42602ec 100644
--- a/samoa-local/src/test/java/com/yahoo/labs/samoa/topology/impl/SimpleProcessingItemTest.java
+++ b/samoa-local/src/test/java/org/apache/samoa/topology/impl/SimpleProcessingItemTest.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -30,14 +30,15 @@
 import mockit.NonStrictExpectations;
 import mockit.Tested;
 
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.topology.impl.SimpleProcessingItem;
+import org.apache.samoa.topology.impl.SimpleStream;
+import org.apache.samoa.utils.PartitioningScheme;
+import org.apache.samoa.utils.StreamDestination;
 import org.junit.Before;
 import org.junit.Test;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.utils.PartitioningScheme;
-import com.yahoo.labs.samoa.utils.StreamDestination;
-
 /**
  * @author Anh Thu Vu
  * 
diff --git a/samoa-local/src/test/java/com/yahoo/labs/samoa/topology/impl/SimpleStreamTest.java b/samoa-local/src/test/java/org/apache/samoa/topology/impl/SimpleStreamTest.java
similarity index 90%
rename from samoa-local/src/test/java/com/yahoo/labs/samoa/topology/impl/SimpleStreamTest.java
rename to samoa-local/src/test/java/org/apache/samoa/topology/impl/SimpleStreamTest.java
index 25cb5eb..51e25bb 100644
--- a/samoa-local/src/test/java/com/yahoo/labs/samoa/topology/impl/SimpleStreamTest.java
+++ b/samoa-local/src/test/java/org/apache/samoa/topology/impl/SimpleStreamTest.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -28,16 +28,17 @@
 import mockit.NonStrictExpectations;
 import mockit.Tested;
 
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.topology.impl.SimpleProcessingItem;
+import org.apache.samoa.topology.impl.SimpleStream;
+import org.apache.samoa.utils.PartitioningScheme;
+import org.apache.samoa.utils.StreamDestination;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 import org.junit.runners.Parameterized.Parameters;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.utils.PartitioningScheme;
-import com.yahoo.labs.samoa.utils.StreamDestination;
-
 /**
  * @author Anh Thu Vu
  * 
diff --git a/samoa-local/src/test/java/com/yahoo/labs/samoa/topology/impl/SimpleTopologyTest.java b/samoa-local/src/test/java/org/apache/samoa/topology/impl/SimpleTopologyTest.java
similarity index 89%
rename from samoa-local/src/test/java/com/yahoo/labs/samoa/topology/impl/SimpleTopologyTest.java
rename to samoa-local/src/test/java/org/apache/samoa/topology/impl/SimpleTopologyTest.java
index 9aaaebd..6d8d728 100644
--- a/samoa-local/src/test/java/com/yahoo/labs/samoa/topology/impl/SimpleTopologyTest.java
+++ b/samoa-local/src/test/java/org/apache/samoa/topology/impl/SimpleTopologyTest.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 import static org.junit.Assert.*;
 
@@ -9,6 +9,10 @@
 import mockit.Mocked;
 import mockit.Tested;
 
+import org.apache.samoa.core.EntranceProcessor;
+import org.apache.samoa.topology.EntranceProcessingItem;
+import org.apache.samoa.topology.impl.SimpleEntranceProcessingItem;
+import org.apache.samoa.topology.impl.SimpleTopology;
 import org.junit.Before;
 import org.junit.Test;
 /*
@@ -31,8 +35,7 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.core.EntranceProcessor;
-import com.yahoo.labs.samoa.topology.EntranceProcessingItem;
+
 
 /**
  * @author Anh Thu Vu
diff --git a/samoa-s4/pom.xml b/samoa-s4/pom.xml
index 8135be9..0f9b804 100644
--- a/samoa-s4/pom.xml
+++ b/samoa-s4/pom.xml
@@ -31,14 +31,14 @@
 
   <artifactId>samoa-s4</artifactId>
   <parent>
-    <groupId>com.yahoo.labs.samoa</groupId>
+    <groupId>org.apache.samoa</groupId>
     <artifactId>samoa</artifactId>
     <version>0.3.0-SNAPSHOT</version>
   </parent>
 
   <dependencies>
     <dependency>
-      <groupId>com.yahoo.labs.samoa</groupId>
+      <groupId>org.apache.samoa</groupId>
       <artifactId>samoa-api</artifactId>
       <version>${project.version}</version>
     </dependency>
@@ -117,7 +117,7 @@
               <Implementation-Version>${project.version}</Implementation-Version>
               <Implementation-Vendor>Yahoo Labs</Implementation-Vendor>
               <Implementation-Vendor-Id>SAMOA</Implementation-Vendor-Id>
-              <S4-App-Class>com.yahoo.labs.samoa.topology.impl.S4DoTask</S4-App-Class>
+              <S4-App-Class>org.apache.samoa.topology.impl.S4DoTask</S4-App-Class>
               <S4-Version>${s4.version}</S4-Version>
             </manifestEntries>
           </archive>
diff --git a/samoa-s4/samoa-s4-adapter/pom.xml b/samoa-s4/samoa-s4-adapter/pom.xml
index 27c8d51..5a66a1e 100644
--- a/samoa-s4/samoa-s4-adapter/pom.xml
+++ b/samoa-s4/samoa-s4-adapter/pom.xml
@@ -37,22 +37,16 @@
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
 
-  <!-- PARENT MODULE SAMOA-S4 <parent> <groupId>com.yahoo.labs.bcn.samoa</groupId> <artifactId>samoa-s4</artifactId> <version>0.1</version> 
-    </parent> -->
-
-  <!-- SAMOA-S4-ADAPTER MODUEL -->
   <artifactId>samoa-s4-adapter</artifactId>
-  <groupId>com.yahoo.labs.bcn.samoa</groupId>
+  <groupId>org.apache.samoa</groupId>
   <version>0.1</version>
   <name>samoa-s4-adapter</name>
   <description>Adapter module to connect to external stream and also to provide entrance processing items for SAMOA</description>
 
   <dependencies>
-    <!-- dependency> <artifactId>samoa-api</artifactId> <groupId>com.yahoo.labs.bcn.samoa</groupId> <version>0.1</version> 
-      </dependency> -->
     <dependency>
       <artifactId>samoa-s4</artifactId>
-      <groupId>com.yahoo.labs.bcn.samoa</groupId>
+      <groupId>org.apache.samoa</groupId>
       <version>0.1</version>
     </dependency>
   </dependencies>
diff --git a/samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/S4ComponentFactory.java b/samoa-s4/src/main/java/org/apache/samoa/topology/impl/S4ComponentFactory.java
similarity index 83%
rename from samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/S4ComponentFactory.java
rename to samoa-s4/src/main/java/org/apache/samoa/topology/impl/S4ComponentFactory.java
index 24602a4..ebd18f9 100644
--- a/samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/S4ComponentFactory.java
+++ b/samoa-s4/src/main/java/org/apache/samoa/topology/impl/S4ComponentFactory.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -20,18 +20,17 @@
  * #L%
  */
 
+import org.apache.samoa.core.EntranceProcessor;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.topology.ComponentFactory;
+import org.apache.samoa.topology.EntranceProcessingItem;
+import org.apache.samoa.topology.IProcessingItem;
+import org.apache.samoa.topology.ProcessingItem;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.topology.Topology;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.yahoo.labs.samoa.core.EntranceProcessor;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.topology.ComponentFactory;
-import com.yahoo.labs.samoa.topology.EntranceProcessingItem;
-import com.yahoo.labs.samoa.topology.IProcessingItem;
-import com.yahoo.labs.samoa.topology.ProcessingItem;
-import com.yahoo.labs.samoa.topology.Stream;
-import com.yahoo.labs.samoa.topology.Topology;
-
 /**
  * S4 Platform Component Factory
  * 
diff --git a/samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/S4DoTask.java b/samoa-s4/src/main/java/org/apache/samoa/topology/impl/S4DoTask.java
similarity index 97%
rename from samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/S4DoTask.java
rename to samoa-s4/src/main/java/org/apache/samoa/topology/impl/S4DoTask.java
index cc4b18d..d52e981 100644
--- a/samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/S4DoTask.java
+++ b/samoa-s4/src/main/java/org/apache/samoa/topology/impl/S4DoTask.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -35,14 +35,14 @@
 import org.apache.s4.core.App;
 import org.apache.s4.core.ProcessingElement;
 import org.apache.s4.core.Stream;
+import org.apache.samoa.core.Globals;
+import org.apache.samoa.tasks.Task;
+import org.apache.samoa.topology.ComponentFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
 import com.github.javacliparser.Option;
 import com.github.javacliparser.ClassOption;
-import com.yahoo.labs.samoa.core.Globals;
-import com.yahoo.labs.samoa.tasks.Task;
-import com.yahoo.labs.samoa.topology.ComponentFactory;
-
 import com.google.inject.Inject;
 import com.google.inject.name.Named;
 
diff --git a/samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/S4EntranceProcessingItem.java b/samoa-s4/src/main/java/org/apache/samoa/topology/impl/S4EntranceProcessingItem.java
similarity index 92%
rename from samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/S4EntranceProcessingItem.java
rename to samoa-s4/src/main/java/org/apache/samoa/topology/impl/S4EntranceProcessingItem.java
index e1d4754..771cbc8 100644
--- a/samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/S4EntranceProcessingItem.java
+++ b/samoa-s4/src/main/java/org/apache/samoa/topology/impl/S4EntranceProcessingItem.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -22,11 +22,10 @@
 
 import org.apache.s4.core.App;
 import org.apache.s4.core.ProcessingElement;
-
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.EntranceProcessor;
-import com.yahoo.labs.samoa.topology.EntranceProcessingItem;
-import com.yahoo.labs.samoa.topology.Stream;
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.EntranceProcessor;
+import org.apache.samoa.topology.EntranceProcessingItem;
+import org.apache.samoa.topology.Stream;
 
 // TODO adapt this entrance processing item to connect to external streams so the application doesnt need to use an AdapterApp
 
diff --git a/samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/S4Event.java b/samoa-s4/src/main/java/org/apache/samoa/topology/impl/S4Event.java
similarity index 94%
rename from samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/S4Event.java
rename to samoa-s4/src/main/java/org/apache/samoa/topology/impl/S4Event.java
index 8ef137c..154715b 100644
--- a/samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/S4Event.java
+++ b/samoa-s4/src/main/java/org/apache/samoa/topology/impl/S4Event.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -27,8 +27,7 @@
 import net.jcip.annotations.Immutable;
 
 import org.apache.s4.base.Event;
-
-import com.yahoo.labs.samoa.core.ContentEvent;
+import org.apache.samoa.core.ContentEvent;
 
 /**
  * The Class InstanceEvent.
diff --git a/samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/S4ProcessingItem.java b/samoa-s4/src/main/java/org/apache/samoa/topology/impl/S4ProcessingItem.java
similarity index 95%
rename from samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/S4ProcessingItem.java
rename to samoa-s4/src/main/java/org/apache/samoa/topology/impl/S4ProcessingItem.java
index ea88094..b9c7467 100644
--- a/samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/S4ProcessingItem.java
+++ b/samoa-s4/src/main/java/org/apache/samoa/topology/impl/S4ProcessingItem.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -27,13 +27,12 @@
 import org.apache.s4.base.KeyFinder;
 import org.apache.s4.core.App;
 import org.apache.s4.core.ProcessingElement;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.topology.ProcessingItem;
+import org.apache.samoa.topology.Stream;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.topology.ProcessingItem;
-import com.yahoo.labs.samoa.topology.Stream;
-
 /**
  * S4 Platform platform specific processing item, inherits from S4 ProcessinElemnt.
  * 
diff --git a/samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/S4Stream.java b/samoa-s4/src/main/java/org/apache/samoa/topology/impl/S4Stream.java
similarity index 96%
rename from samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/S4Stream.java
rename to samoa-s4/src/main/java/org/apache/samoa/topology/impl/S4Stream.java
index 46c979c..734462e 100644
--- a/samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/S4Stream.java
+++ b/samoa-s4/src/main/java/org/apache/samoa/topology/impl/S4Stream.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -25,12 +25,11 @@
 
 import org.apache.commons.lang3.builder.HashCodeBuilder;
 import org.apache.s4.base.KeyFinder;
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.topology.AbstractStream;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.topology.AbstractStream;
-
 /**
  * S4 Platform specific stream.
  * 
diff --git a/samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/S4Submitter.java b/samoa-s4/src/main/java/org/apache/samoa/topology/impl/S4Submitter.java
similarity index 97%
rename from samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/S4Submitter.java
rename to samoa-s4/src/main/java/org/apache/samoa/topology/impl/S4Submitter.java
index f6bca87..22807a6 100644
--- a/samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/S4Submitter.java
+++ b/samoa-s4/src/main/java/org/apache/samoa/topology/impl/S4Submitter.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -32,12 +32,11 @@
 import org.apache.s4.core.util.AppConfig;
 import org.apache.s4.core.util.ParsingUtils;
 import org.apache.s4.deploy.DeploymentUtils;
+import org.apache.samoa.tasks.Task;
+import org.apache.samoa.topology.ISubmitter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.yahoo.labs.samoa.tasks.Task;
-import com.yahoo.labs.samoa.topology.ISubmitter;
-
 import com.beust.jcommander.JCommander;
 import com.beust.jcommander.Parameter;
 import com.beust.jcommander.Parameters;
diff --git a/samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/S4Topology.java b/samoa-s4/src/main/java/org/apache/samoa/topology/impl/S4Topology.java
similarity index 90%
rename from samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/S4Topology.java
rename to samoa-s4/src/main/java/org/apache/samoa/topology/impl/S4Topology.java
index 5eb0ccf..413cfda 100644
--- a/samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/S4Topology.java
+++ b/samoa-s4/src/main/java/org/apache/samoa/topology/impl/S4Topology.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -20,8 +20,8 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.topology.EntranceProcessingItem;
-import com.yahoo.labs.samoa.topology.AbstractTopology;
+import org.apache.samoa.topology.AbstractTopology;
+import org.apache.samoa.topology.EntranceProcessingItem;
 
 public class S4Topology extends AbstractTopology {
 
diff --git a/samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/SamoaSerializer.java b/samoa-s4/src/main/java/org/apache/samoa/topology/impl/SamoaSerializer.java
similarity index 93%
rename from samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/SamoaSerializer.java
rename to samoa-s4/src/main/java/org/apache/samoa/topology/impl/SamoaSerializer.java
index b809284..9f9f144 100644
--- a/samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/SamoaSerializer.java
+++ b/samoa-s4/src/main/java/org/apache/samoa/topology/impl/SamoaSerializer.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -23,14 +23,14 @@
 import java.nio.ByteBuffer;
 
 import org.apache.s4.base.SerializerDeserializer;
+import org.apache.samoa.learners.classifiers.trees.AttributeContentEvent;
+import org.apache.samoa.learners.classifiers.trees.ComputeContentEvent;
 
 import com.esotericsoftware.kryo.Kryo;
 import com.esotericsoftware.kryo.io.Input;
 import com.esotericsoftware.kryo.io.Output;
 import com.google.inject.Inject;
 import com.google.inject.assistedinject.Assisted;
-import com.yahoo.labs.samoa.learners.classifiers.trees.AttributeContentEvent;
-import com.yahoo.labs.samoa.learners.classifiers.trees.ComputeContentEvent;
 
 public class SamoaSerializer implements SerializerDeserializer {
 
diff --git a/samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/SamoaSerializerModule.java b/samoa-s4/src/main/java/org/apache/samoa/topology/impl/SamoaSerializerModule.java
similarity index 95%
rename from samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/SamoaSerializerModule.java
rename to samoa-s4/src/main/java/org/apache/samoa/topology/impl/SamoaSerializerModule.java
index d47b143..e530a09 100644
--- a/samoa-s4/src/main/java/com/yahoo/labs/samoa/topology/impl/SamoaSerializerModule.java
+++ b/samoa-s4/src/main/java/org/apache/samoa/topology/impl/SamoaSerializerModule.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
diff --git a/samoa-samza/pom.xml b/samoa-samza/pom.xml
index 0a04c65..1344031 100644
--- a/samoa-samza/pom.xml
+++ b/samoa-samza/pom.xml
@@ -31,14 +31,14 @@
 
   <artifactId>samoa-samza</artifactId>
   <parent>
-    <groupId>com.yahoo.labs.samoa</groupId>
+    <groupId>org.apache.samoa</groupId>
     <artifactId>samoa</artifactId>
     <version>0.3.0-SNAPSHOT</version>
   </parent>
 
   <dependencies>
     <dependency>
-      <groupId>com.yahoo.labs.samoa</groupId>
+      <groupId>org.apache.samoa</groupId>
       <artifactId>samoa-api</artifactId>
       <version>${project.version}</version>
     </dependency>
diff --git a/samoa-samza/src/main/java/com/yahoo/labs/samoa/SamzaDoTask.java b/samoa-samza/src/main/java/org/apache/samoa/SamzaDoTask.java
similarity index 96%
rename from samoa-samza/src/main/java/com/yahoo/labs/samoa/SamzaDoTask.java
rename to samoa-samza/src/main/java/org/apache/samoa/SamzaDoTask.java
index 8f90478..3fe3a25 100644
--- a/samoa-samza/src/main/java/com/yahoo/labs/samoa/SamzaDoTask.java
+++ b/samoa-samza/src/main/java/org/apache/samoa/SamzaDoTask.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa;
+package org.apache.samoa;
 
 /*
  * #%L
@@ -27,15 +27,15 @@
 import java.util.Arrays;
 import java.util.List;
 
+import org.apache.samoa.tasks.Task;
+import org.apache.samoa.topology.impl.SamzaComponentFactory;
+import org.apache.samoa.topology.impl.SamzaEngine;
+import org.apache.samoa.topology.impl.SamzaTopology;
+import org.apache.samoa.utils.SystemsUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.github.javacliparser.ClassOption;
-import com.yahoo.labs.samoa.tasks.Task;
-import com.yahoo.labs.samoa.topology.impl.SamzaComponentFactory;
-import com.yahoo.labs.samoa.topology.impl.SamzaEngine;
-import com.yahoo.labs.samoa.topology.impl.SamzaTopology;
-import com.yahoo.labs.samoa.utils.SystemsUtils;
 
 /**
  * Main class to run the task on Samza
diff --git a/samoa-samza/src/main/java/com/yahoo/labs/samoa/topology/impl/SamoaSystemFactory.java b/samoa-samza/src/main/java/org/apache/samoa/topology/impl/SamoaSystemFactory.java
similarity index 92%
rename from samoa-samza/src/main/java/com/yahoo/labs/samoa/topology/impl/SamoaSystemFactory.java
rename to samoa-samza/src/main/java/org/apache/samoa/topology/impl/SamoaSystemFactory.java
index 486472c..7d4f0a1 100644
--- a/samoa-samza/src/main/java/com/yahoo/labs/samoa/topology/impl/SamoaSystemFactory.java
+++ b/samoa-samza/src/main/java/org/apache/samoa/topology/impl/SamoaSystemFactory.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -20,6 +20,7 @@
  * #L%
  */
 
+import org.apache.samoa.topology.impl.SamzaEntranceProcessingItem.SamoaSystemConsumer;
 import org.apache.samza.SamzaException;
 import org.apache.samza.config.Config;
 import org.apache.samza.metrics.MetricsRegistry;
@@ -29,8 +30,6 @@
 import org.apache.samza.system.SystemProducer;
 import org.apache.samza.util.SinglePartitionWithoutOffsetsSystemAdmin;
 
-import com.yahoo.labs.samoa.topology.impl.SamzaEntranceProcessingItem.SamoaSystemConsumer;
-
 /**
  * Implementation of Samza's SystemFactory Samza will use this factory to get our custom consumer which gets the events
  * from SAMOA EntranceProcessor and feed them to EntranceProcessingItem task
diff --git a/samoa-samza/src/main/java/com/yahoo/labs/samoa/topology/impl/SamzaComponentFactory.java b/samoa-samza/src/main/java/org/apache/samoa/topology/impl/SamzaComponentFactory.java
similarity index 76%
rename from samoa-samza/src/main/java/com/yahoo/labs/samoa/topology/impl/SamzaComponentFactory.java
rename to samoa-samza/src/main/java/org/apache/samoa/topology/impl/SamzaComponentFactory.java
index 813c3b3..5eb9de9 100644
--- a/samoa-samza/src/main/java/com/yahoo/labs/samoa/topology/impl/SamzaComponentFactory.java
+++ b/samoa-samza/src/main/java/org/apache/samoa/topology/impl/SamzaComponentFactory.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -20,14 +20,14 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.core.EntranceProcessor;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.topology.ComponentFactory;
-import com.yahoo.labs.samoa.topology.EntranceProcessingItem;
-import com.yahoo.labs.samoa.topology.IProcessingItem;
-import com.yahoo.labs.samoa.topology.ProcessingItem;
-import com.yahoo.labs.samoa.topology.Stream;
-import com.yahoo.labs.samoa.topology.Topology;
+import org.apache.samoa.core.EntranceProcessor;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.topology.ComponentFactory;
+import org.apache.samoa.topology.EntranceProcessingItem;
+import org.apache.samoa.topology.IProcessingItem;
+import org.apache.samoa.topology.ProcessingItem;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.topology.Topology;
 
 /**
  * Implementation of SAMOA ComponentFactory for Samza
diff --git a/samoa-samza/src/main/java/com/yahoo/labs/samoa/topology/impl/SamzaEngine.java b/samoa-samza/src/main/java/org/apache/samoa/topology/impl/SamzaEngine.java
similarity index 93%
rename from samoa-samza/src/main/java/com/yahoo/labs/samoa/topology/impl/SamzaEngine.java
rename to samoa-samza/src/main/java/org/apache/samoa/topology/impl/SamzaEngine.java
index 4b9b7ce..9c30036 100644
--- a/samoa-samza/src/main/java/com/yahoo/labs/samoa/topology/impl/SamzaEngine.java
+++ b/samoa-samza/src/main/java/org/apache/samoa/topology/impl/SamzaEngine.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -23,17 +23,16 @@
 import java.util.List;
 import java.util.Set;
 
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.topology.Topology;
+import org.apache.samoa.topology.impl.SamzaStream.SamzaSystemStream;
+import org.apache.samoa.utils.SamzaConfigFactory;
+import org.apache.samoa.utils.SystemsUtils;
 import org.apache.samza.config.MapConfig;
 import org.apache.samza.job.JobRunner;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.yahoo.labs.samoa.topology.Stream;
-import com.yahoo.labs.samoa.topology.Topology;
-import com.yahoo.labs.samoa.topology.impl.SamzaStream.SamzaSystemStream;
-import com.yahoo.labs.samoa.utils.SamzaConfigFactory;
-import com.yahoo.labs.samoa.utils.SystemsUtils;
-
 /**
  * This class will submit a list of Samza jobs with the Configs generated from the input topology
  * 
diff --git a/samoa-samza/src/main/java/com/yahoo/labs/samoa/topology/impl/SamzaEntranceProcessingItem.java b/samoa-samza/src/main/java/org/apache/samoa/topology/impl/SamzaEntranceProcessingItem.java
similarity index 95%
rename from samoa-samza/src/main/java/com/yahoo/labs/samoa/topology/impl/SamzaEntranceProcessingItem.java
rename to samoa-samza/src/main/java/org/apache/samoa/topology/impl/SamzaEntranceProcessingItem.java
index bfbd40c..5f00b79 100644
--- a/samoa-samza/src/main/java/com/yahoo/labs/samoa/topology/impl/SamzaEntranceProcessingItem.java
+++ b/samoa-samza/src/main/java/org/apache/samoa/topology/impl/SamzaEntranceProcessingItem.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -23,6 +23,12 @@
 import java.io.Serializable;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.EntranceProcessor;
+import org.apache.samoa.topology.AbstractEntranceProcessingItem;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.utils.SamzaConfigFactory;
+import org.apache.samoa.utils.SystemsUtils;
 import org.apache.samza.Partition;
 import org.apache.samza.config.Config;
 import org.apache.samza.system.SystemStreamPartition;
@@ -36,13 +42,6 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.EntranceProcessor;
-import com.yahoo.labs.samoa.topology.AbstractEntranceProcessingItem;
-import com.yahoo.labs.samoa.topology.Stream;
-import com.yahoo.labs.samoa.utils.SamzaConfigFactory;
-import com.yahoo.labs.samoa.utils.SystemsUtils;
-
 /**
  * EntranceProcessingItem for Samza which is also a Samza task (StreamTask & InitableTask)
  * 
diff --git a/samoa-samza/src/main/java/com/yahoo/labs/samoa/topology/impl/SamzaProcessingItem.java b/samoa-samza/src/main/java/org/apache/samoa/topology/impl/SamzaProcessingItem.java
similarity index 87%
rename from samoa-samza/src/main/java/com/yahoo/labs/samoa/topology/impl/SamzaProcessingItem.java
rename to samoa-samza/src/main/java/org/apache/samoa/topology/impl/SamzaProcessingItem.java
index 6998aa2..88f0eaa 100644
--- a/samoa-samza/src/main/java/com/yahoo/labs/samoa/topology/impl/SamzaProcessingItem.java
+++ b/samoa-samza/src/main/java/org/apache/samoa/topology/impl/SamzaProcessingItem.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -26,17 +26,16 @@
 import java.util.List;
 import java.util.Set;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.topology.AbstractProcessingItem;
-import com.yahoo.labs.samoa.topology.ProcessingItem;
-import com.yahoo.labs.samoa.topology.Stream;
-import com.yahoo.labs.samoa.topology.impl.SamzaStream.SamzaSystemStream;
-import com.yahoo.labs.samoa.utils.PartitioningScheme;
-import com.yahoo.labs.samoa.utils.SamzaConfigFactory;
-import com.yahoo.labs.samoa.utils.SystemsUtils;
-import com.yahoo.labs.samoa.utils.StreamDestination;
-
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.topology.AbstractProcessingItem;
+import org.apache.samoa.topology.ProcessingItem;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.topology.impl.SamzaStream.SamzaSystemStream;
+import org.apache.samoa.utils.PartitioningScheme;
+import org.apache.samoa.utils.SamzaConfigFactory;
+import org.apache.samoa.utils.StreamDestination;
+import org.apache.samoa.utils.SystemsUtils;
 import org.apache.samza.config.Config;
 import org.apache.samza.system.IncomingMessageEnvelope;
 import org.apache.samza.task.InitableTask;
@@ -69,7 +68,7 @@
   }
 
   /*
-   * Implement com.yahoo.labs.samoa.topology.ProcessingItem
+   * Implement org.apache.samoa.topology.ProcessingItem
    */
   public SamzaProcessingItem(Processor processor, int parallelismHint) {
     super(processor, parallelismHint);
diff --git a/samoa-samza/src/main/java/com/yahoo/labs/samoa/topology/impl/SamzaProcessingNode.java b/samoa-samza/src/main/java/org/apache/samoa/topology/impl/SamzaProcessingNode.java
similarity index 93%
rename from samoa-samza/src/main/java/com/yahoo/labs/samoa/topology/impl/SamzaProcessingNode.java
rename to samoa-samza/src/main/java/org/apache/samoa/topology/impl/SamzaProcessingNode.java
index 8a0e01e..3d221f1 100644
--- a/samoa-samza/src/main/java/com/yahoo/labs/samoa/topology/impl/SamzaProcessingNode.java
+++ b/samoa-samza/src/main/java/org/apache/samoa/topology/impl/SamzaProcessingNode.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -20,7 +20,7 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.topology.IProcessingItem;
+import org.apache.samoa.topology.IProcessingItem;
 
 /**
  * Common interface of SamzaEntranceProcessingItem and SamzaProcessingItem
diff --git a/samoa-samza/src/main/java/com/yahoo/labs/samoa/topology/impl/SamzaStream.java b/samoa-samza/src/main/java/org/apache/samoa/topology/impl/SamzaStream.java
similarity index 95%
rename from samoa-samza/src/main/java/com/yahoo/labs/samoa/topology/impl/SamzaStream.java
rename to samoa-samza/src/main/java/org/apache/samoa/topology/impl/SamzaStream.java
index 98165d4..da3f8bc 100644
--- a/samoa-samza/src/main/java/com/yahoo/labs/samoa/topology/impl/SamzaStream.java
+++ b/samoa-samza/src/main/java/org/apache/samoa/topology/impl/SamzaStream.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -24,16 +24,15 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.topology.AbstractStream;
+import org.apache.samoa.topology.IProcessingItem;
+import org.apache.samoa.utils.PartitioningScheme;
+import org.apache.samoa.utils.StreamDestination;
 import org.apache.samza.system.OutgoingMessageEnvelope;
 import org.apache.samza.system.SystemStream;
 import org.apache.samza.task.MessageCollector;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.topology.IProcessingItem;
-import com.yahoo.labs.samoa.topology.AbstractStream;
-import com.yahoo.labs.samoa.utils.PartitioningScheme;
-import com.yahoo.labs.samoa.utils.StreamDestination;
-
 /**
  * Stream for SAMOA on Samza
  * 
diff --git a/samoa-samza/src/main/java/com/yahoo/labs/samoa/topology/impl/SamzaTopology.java b/samoa-samza/src/main/java/org/apache/samoa/topology/impl/SamzaTopology.java
similarity index 92%
rename from samoa-samza/src/main/java/com/yahoo/labs/samoa/topology/impl/SamzaTopology.java
rename to samoa-samza/src/main/java/org/apache/samoa/topology/impl/SamzaTopology.java
index a30a3a3..ae74619 100644
--- a/samoa-samza/src/main/java/com/yahoo/labs/samoa/topology/impl/SamzaTopology.java
+++ b/samoa-samza/src/main/java/org/apache/samoa/topology/impl/SamzaTopology.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -23,8 +23,8 @@
 import java.util.HashSet;
 import java.util.Set;
 
-import com.yahoo.labs.samoa.topology.IProcessingItem;
-import com.yahoo.labs.samoa.topology.AbstractTopology;
+import org.apache.samoa.topology.AbstractTopology;
+import org.apache.samoa.topology.IProcessingItem;
 
 /**
  * Topology for Samza
diff --git a/samoa-samza/src/main/java/com/yahoo/labs/samoa/utils/SamzaConfigFactory.java b/samoa-samza/src/main/java/org/apache/samoa/utils/SamzaConfigFactory.java
similarity index 96%
rename from samoa-samza/src/main/java/com/yahoo/labs/samoa/utils/SamzaConfigFactory.java
rename to samoa-samza/src/main/java/org/apache/samoa/utils/SamzaConfigFactory.java
index 972daa2..0a2efed 100644
--- a/samoa-samza/src/main/java/com/yahoo/labs/samoa/utils/SamzaConfigFactory.java
+++ b/samoa-samza/src/main/java/org/apache/samoa/utils/SamzaConfigFactory.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.utils;
+package org.apache.samoa.utils;
 
 /*
  * #%L
@@ -34,22 +34,21 @@
 import java.util.Set;
 
 import org.apache.commons.io.FileUtils;
+import org.apache.samoa.topology.EntranceProcessingItem;
+import org.apache.samoa.topology.IProcessingItem;
+import org.apache.samoa.topology.ProcessingItem;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.topology.impl.SamoaSystemFactory;
+import org.apache.samoa.topology.impl.SamzaEntranceProcessingItem;
+import org.apache.samoa.topology.impl.SamzaProcessingItem;
+import org.apache.samoa.topology.impl.SamzaStream;
+import org.apache.samoa.topology.impl.SamzaTopology;
+import org.apache.samoa.topology.impl.SamzaStream.SamzaSystemStream;
 import org.apache.samza.config.MapConfig;
 import org.apache.samza.job.local.LocalJobFactory;
 import org.apache.samza.job.yarn.YarnJobFactory;
 import org.apache.samza.system.kafka.KafkaSystemFactory;
 
-import com.yahoo.labs.samoa.topology.EntranceProcessingItem;
-import com.yahoo.labs.samoa.topology.IProcessingItem;
-import com.yahoo.labs.samoa.topology.ProcessingItem;
-import com.yahoo.labs.samoa.topology.Stream;
-import com.yahoo.labs.samoa.topology.impl.SamoaSystemFactory;
-import com.yahoo.labs.samoa.topology.impl.SamzaEntranceProcessingItem;
-import com.yahoo.labs.samoa.topology.impl.SamzaProcessingItem;
-import com.yahoo.labs.samoa.topology.impl.SamzaStream;
-import com.yahoo.labs.samoa.topology.impl.SamzaTopology;
-import com.yahoo.labs.samoa.topology.impl.SamzaStream.SamzaSystemStream;
-
 /**
  * Generate Configs that will be used to submit Samza jobs from the input topology (one config per PI/EntrancePI in the
  * topology)
diff --git a/samoa-samza/src/main/java/com/yahoo/labs/samoa/utils/SamzaKryoSerdeFactory.java b/samoa-samza/src/main/java/org/apache/samoa/utils/SamzaKryoSerdeFactory.java
similarity index 98%
rename from samoa-samza/src/main/java/com/yahoo/labs/samoa/utils/SamzaKryoSerdeFactory.java
rename to samoa-samza/src/main/java/org/apache/samoa/utils/SamzaKryoSerdeFactory.java
index 1874fa3..90c0f25 100644
--- a/samoa-samza/src/main/java/com/yahoo/labs/samoa/utils/SamzaKryoSerdeFactory.java
+++ b/samoa-samza/src/main/java/org/apache/samoa/utils/SamzaKryoSerdeFactory.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.utils;
+package org.apache.samoa.utils;
 
 /*
  * #%L
diff --git a/samoa-samza/src/main/java/com/yahoo/labs/samoa/utils/SerializableSerializer.java b/samoa-samza/src/main/java/org/apache/samoa/utils/SerializableSerializer.java
similarity index 97%
rename from samoa-samza/src/main/java/com/yahoo/labs/samoa/utils/SerializableSerializer.java
rename to samoa-samza/src/main/java/org/apache/samoa/utils/SerializableSerializer.java
index 4b7850d..4932ba8 100644
--- a/samoa-samza/src/main/java/com/yahoo/labs/samoa/utils/SerializableSerializer.java
+++ b/samoa-samza/src/main/java/org/apache/samoa/utils/SerializableSerializer.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.utils;
+package org.apache.samoa.utils;
 
 /*
  * #%L
diff --git a/samoa-samza/src/main/java/com/yahoo/labs/samoa/utils/SystemsUtils.java b/samoa-samza/src/main/java/org/apache/samoa/utils/SystemsUtils.java
similarity index 99%
rename from samoa-samza/src/main/java/com/yahoo/labs/samoa/utils/SystemsUtils.java
rename to samoa-samza/src/main/java/org/apache/samoa/utils/SystemsUtils.java
index 0b12971..6c369ae 100644
--- a/samoa-samza/src/main/java/com/yahoo/labs/samoa/utils/SystemsUtils.java
+++ b/samoa-samza/src/main/java/org/apache/samoa/utils/SystemsUtils.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.utils;
+package org.apache.samoa.utils;
 
 /*
  * #%L
diff --git a/samoa-samza/src/main/resources/log4j.xml b/samoa-samza/src/main/resources/log4j.xml
index 1704755..5862b88 100644
--- a/samoa-samza/src/main/resources/log4j.xml
+++ b/samoa-samza/src/main/resources/log4j.xml
@@ -51,7 +51,7 @@
     </layout>
   </appender>
 
-  <category name="com.yahoo.labs" additivity="false">
+  <category name="org.apache.samoa" additivity="false">
     <priority value="info" />
     <appender-ref ref="CONSOLE" />
   </category>
diff --git a/samoa-storm/pom.xml b/samoa-storm/pom.xml
index abd351b..a5d1012 100644
--- a/samoa-storm/pom.xml
+++ b/samoa-storm/pom.xml
@@ -31,7 +31,7 @@
 
   <artifactId>samoa-storm</artifactId>
   <parent>
-    <groupId>com.yahoo.labs.samoa</groupId>
+    <groupId>org.apache.samoa</groupId>
     <artifactId>samoa</artifactId>
     <version>0.3.0-SNAPSHOT</version>
   </parent>
@@ -45,12 +45,12 @@
 
   <dependencies>
     <dependency>
-      <groupId>com.yahoo.labs.samoa</groupId>
+      <groupId>org.apache.samoa</groupId>
       <artifactId>samoa-api</artifactId>
       <version>${project.version}</version>
     </dependency>
     <dependency>
-      <groupId>com.yahoo.labs.samoa</groupId>
+      <groupId>org.apache.samoa</groupId>
       <artifactId>samoa-test</artifactId>
       <type>test-jar</type>
       <classifier>test-jar-with-dependencies</classifier>
diff --git a/samoa-storm/src/main/java/com/yahoo/labs/samoa/LocalStormDoTask.java b/samoa-storm/src/main/java/org/apache/samoa/LocalStormDoTask.java
similarity index 92%
rename from samoa-storm/src/main/java/com/yahoo/labs/samoa/LocalStormDoTask.java
rename to samoa-storm/src/main/java/org/apache/samoa/LocalStormDoTask.java
index a5e1cdd..f2b9c0c 100644
--- a/samoa-storm/src/main/java/com/yahoo/labs/samoa/LocalStormDoTask.java
+++ b/samoa-storm/src/main/java/org/apache/samoa/LocalStormDoTask.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa;
+package org.apache.samoa;
 
 /*
  * #%L
@@ -23,15 +23,14 @@
 import java.util.Arrays;
 import java.util.List;
 
+import org.apache.samoa.topology.impl.StormSamoaUtils;
+import org.apache.samoa.topology.impl.StormTopology;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import backtype.storm.Config;
 import backtype.storm.utils.Utils;
 
-import com.yahoo.labs.samoa.topology.impl.StormSamoaUtils;
-import com.yahoo.labs.samoa.topology.impl.StormTopology;
-
 /**
  * The main class to execute a SAMOA task in LOCAL mode in Storm.
  * 
diff --git a/samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormBoltStream.java b/samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormBoltStream.java
similarity index 94%
rename from samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormBoltStream.java
rename to samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormBoltStream.java
index d879171..de9ef0a 100644
--- a/samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormBoltStream.java
+++ b/samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormBoltStream.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -20,9 +20,10 @@
  * #L%
  */
 
+import org.apache.samoa.core.ContentEvent;
+
 import backtype.storm.task.OutputCollector;
 import backtype.storm.tuple.Values;
-import com.yahoo.labs.samoa.core.ContentEvent;
 
 /**
  * Storm Stream that connects into Bolt. It wraps Storm's outputCollector class
diff --git a/samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormComponentFactory.java b/samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormComponentFactory.java
similarity index 83%
rename from samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormComponentFactory.java
rename to samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormComponentFactory.java
index 0537c3f..353cffc 100644
--- a/samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormComponentFactory.java
+++ b/samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormComponentFactory.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -23,14 +23,14 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import com.yahoo.labs.samoa.core.EntranceProcessor;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.topology.ComponentFactory;
-import com.yahoo.labs.samoa.topology.EntranceProcessingItem;
-import com.yahoo.labs.samoa.topology.IProcessingItem;
-import com.yahoo.labs.samoa.topology.ProcessingItem;
-import com.yahoo.labs.samoa.topology.Stream;
-import com.yahoo.labs.samoa.topology.Topology;
+import org.apache.samoa.core.EntranceProcessor;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.topology.ComponentFactory;
+import org.apache.samoa.topology.EntranceProcessingItem;
+import org.apache.samoa.topology.IProcessingItem;
+import org.apache.samoa.topology.ProcessingItem;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.topology.Topology;
 
 /**
  * Component factory implementation for samoa-storm
diff --git a/samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormDoTask.java b/samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormDoTask.java
similarity index 98%
rename from samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormDoTask.java
rename to samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormDoTask.java
index 41ee276..436db59 100644
--- a/samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormDoTask.java
+++ b/samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormDoTask.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
diff --git a/samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormEntranceProcessingItem.java b/samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormEntranceProcessingItem.java
similarity index 94%
rename from samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormEntranceProcessingItem.java
rename to samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormEntranceProcessingItem.java
index cba6b28..1183fac 100644
--- a/samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormEntranceProcessingItem.java
+++ b/samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormEntranceProcessingItem.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -23,6 +23,12 @@
 import java.util.Map;
 import java.util.UUID;
 
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.EntranceProcessor;
+import org.apache.samoa.topology.AbstractEntranceProcessingItem;
+import org.apache.samoa.topology.EntranceProcessingItem;
+import org.apache.samoa.topology.Stream;
+
 import backtype.storm.spout.SpoutOutputCollector;
 import backtype.storm.task.TopologyContext;
 import backtype.storm.topology.OutputFieldsDeclarer;
@@ -31,12 +37,6 @@
 import backtype.storm.tuple.Values;
 import backtype.storm.utils.Utils;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.EntranceProcessor;
-import com.yahoo.labs.samoa.topology.AbstractEntranceProcessingItem;
-import com.yahoo.labs.samoa.topology.EntranceProcessingItem;
-import com.yahoo.labs.samoa.topology.Stream;
-
 /**
  * EntranceProcessingItem implementation for Storm.
  */
diff --git a/samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormJarSubmitter.java b/samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormJarSubmitter.java
similarity index 97%
rename from samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormJarSubmitter.java
rename to samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormJarSubmitter.java
index bd7a666..a3de798 100644
--- a/samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormJarSubmitter.java
+++ b/samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormJarSubmitter.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
diff --git a/samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormProcessingItem.java b/samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormProcessingItem.java
similarity index 91%
rename from samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormProcessingItem.java
rename to samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormProcessingItem.java
index 509862b..28c3746 100644
--- a/samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormProcessingItem.java
+++ b/samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormProcessingItem.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -25,13 +25,13 @@
 import java.util.Set;
 import java.util.UUID;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.topology.AbstractProcessingItem;
-import com.yahoo.labs.samoa.topology.ProcessingItem;
-import com.yahoo.labs.samoa.topology.Stream;
-import com.yahoo.labs.samoa.topology.impl.StormStream.InputStreamId;
-import com.yahoo.labs.samoa.utils.PartitioningScheme;
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.topology.AbstractProcessingItem;
+import org.apache.samoa.topology.ProcessingItem;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.topology.impl.StormStream.InputStreamId;
+import org.apache.samoa.utils.PartitioningScheme;
 
 import backtype.storm.task.OutputCollector;
 import backtype.storm.task.TopologyContext;
diff --git a/samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormSamoaUtils.java b/samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormSamoaUtils.java
similarity index 96%
rename from samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormSamoaUtils.java
rename to samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormSamoaUtils.java
index bb9e3f4..86a5578 100644
--- a/samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormSamoaUtils.java
+++ b/samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormSamoaUtils.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -21,6 +21,7 @@
  */
 
 import com.github.javacliparser.ClassOption;
+
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
@@ -28,11 +29,10 @@
 import java.util.List;
 import java.util.Properties;
 
+import org.apache.samoa.tasks.Task;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.yahoo.labs.samoa.tasks.Task;
-
 /**
  * Utility class for samoa-storm project. It is used by StormDoTask to process its arguments.
  * 
diff --git a/samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormSpoutStream.java b/samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormSpoutStream.java
similarity index 87%
rename from samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormSpoutStream.java
rename to samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormSpoutStream.java
index 0aab940..14fc424 100644
--- a/samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormSpoutStream.java
+++ b/samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormSpoutStream.java
@@ -1,4 +1,5 @@
-//package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
+//package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -20,8 +21,8 @@
  * #L%
  */
 //
-//import com.yahoo.labs.samoa.core.ContentEvent;
-//import com.yahoo.labs.samoa.topology.impl.StormEntranceProcessingItem.StormEntranceSpout;
+//import org.apache.samoa.core.ContentEvent;
+//import org.apache.samoa.topology.impl.StormEntranceProcessingItem.StormEntranceSpout;
 //
 ///**
 // * Storm Stream that connects into Spout. It wraps the spout itself
diff --git a/samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormStream.java b/samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormStream.java
similarity index 93%
rename from samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormStream.java
rename to samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormStream.java
index ca1edc9..1c62389 100644
--- a/samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormStream.java
+++ b/samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormStream.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -22,8 +22,8 @@
 
 import java.util.UUID;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.topology.Stream;
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.topology.Stream;
 
 /**
  * Abstract class to implement Storm Stream
diff --git a/samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormTopology.java b/samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormTopology.java
similarity index 89%
rename from samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormTopology.java
rename to samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormTopology.java
index 8a76c55..51bb909 100644
--- a/samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormTopology.java
+++ b/samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormTopology.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -20,10 +20,10 @@
  * #L%
  */
 
-import backtype.storm.topology.TopologyBuilder;
+import org.apache.samoa.topology.AbstractTopology;
+import org.apache.samoa.topology.IProcessingItem;
 
-import com.yahoo.labs.samoa.topology.IProcessingItem;
-import com.yahoo.labs.samoa.topology.AbstractTopology;
+import backtype.storm.topology.TopologyBuilder;
 
 /**
  * Adaptation of SAMOA topology in samoa-storm
diff --git a/samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormTopologyNode.java b/samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormTopologyNode.java
similarity index 95%
rename from samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormTopologyNode.java
rename to samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormTopologyNode.java
index 8122258..994fb9f 100644
--- a/samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormTopologyNode.java
+++ b/samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormTopologyNode.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
diff --git a/samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormTopologySubmitter.java b/samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormTopologySubmitter.java
similarity index 98%
rename from samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormTopologySubmitter.java
rename to samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormTopologySubmitter.java
index bbac521..25985df 100644
--- a/samoa-storm/src/main/java/com/yahoo/labs/samoa/topology/impl/StormTopologySubmitter.java
+++ b/samoa-storm/src/main/java/org/apache/samoa/topology/impl/StormTopologySubmitter.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
diff --git a/samoa-storm/src/test/java/com/yahoo/labs/samoa/AlgosTest.java b/samoa-storm/src/test/java/org/apache/samoa/AlgosTest.java
similarity index 93%
rename from samoa-storm/src/test/java/com/yahoo/labs/samoa/AlgosTest.java
rename to samoa-storm/src/test/java/org/apache/samoa/AlgosTest.java
index f767fa8..2208be9 100644
--- a/samoa-storm/src/test/java/com/yahoo/labs/samoa/AlgosTest.java
+++ b/samoa-storm/src/test/java/org/apache/samoa/AlgosTest.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa;
+package org.apache.samoa;
 
 /*
  * #%L
@@ -20,6 +20,9 @@
  * #L%
  */
 
+import org.apache.samoa.LocalStormDoTask;
+import org.apache.samoa.TestParams;
+import org.apache.samoa.TestUtils;
 import org.junit.Test;
 
 public class AlgosTest {
diff --git a/samoa-storm/src/test/java/com/yahoo/labs/samoa/topology/impl/StormProcessingItemTest.java b/samoa-storm/src/test/java/org/apache/samoa/topology/impl/StormProcessingItemTest.java
similarity index 91%
rename from samoa-storm/src/test/java/com/yahoo/labs/samoa/topology/impl/StormProcessingItemTest.java
rename to samoa-storm/src/test/java/org/apache/samoa/topology/impl/StormProcessingItemTest.java
index 27696bd..4673903 100644
--- a/samoa-storm/src/test/java/com/yahoo/labs/samoa/topology/impl/StormProcessingItemTest.java
+++ b/samoa-storm/src/test/java/org/apache/samoa/topology/impl/StormProcessingItemTest.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -27,6 +27,9 @@
 import mockit.Tested;
 import mockit.Verifications;
 
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.topology.impl.StormProcessingItem;
+import org.apache.samoa.topology.impl.StormTopology;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
@@ -35,8 +38,6 @@
 import backtype.storm.topology.IRichBolt;
 import backtype.storm.topology.TopologyBuilder;
 
-import com.yahoo.labs.samoa.core.Processor;
-
 public class StormProcessingItemTest {
   private static final int PARRALLELISM_HINT_2 = 2;
   private static final int PARRALLELISM_HINT_4 = 4;
diff --git a/samoa-test/pom.xml b/samoa-test/pom.xml
index 901c10e..8d33917 100644
--- a/samoa-test/pom.xml
+++ b/samoa-test/pom.xml
@@ -23,7 +23,7 @@
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <parent>
     <artifactId>samoa</artifactId>
-    <groupId>com.yahoo.labs.samoa</groupId>
+    <groupId>org.apache.samoa</groupId>
     <version>0.3.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
@@ -41,7 +41,7 @@
       <version>2.4</version>
     </dependency>
     <dependency>
-      <groupId>com.yahoo.labs.samoa</groupId>
+      <groupId>org.apache.samoa</groupId>
       <artifactId>samoa-api</artifactId>
       <version>${project.version}</version>
     </dependency>
diff --git a/samoa-test/src/test/java/com/yahoo/labs/samoa/TestParams.java b/samoa-test/src/test/java/org/apache/samoa/TestParams.java
similarity index 91%
rename from samoa-test/src/test/java/com/yahoo/labs/samoa/TestParams.java
rename to samoa-test/src/test/java/org/apache/samoa/TestParams.java
index 1cc0ba1..e217922 100644
--- a/samoa-test/src/test/java/com/yahoo/labs/samoa/TestParams.java
+++ b/samoa-test/src/test/java/org/apache/samoa/TestParams.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa;
+package org.apache.samoa;
 
 public class TestParams {
 
@@ -15,19 +15,19 @@
   public static class Templates {
 
     public final static String PREQEVAL_VHT_RANDOMTREE = "PrequentialEvaluation -d %s -i %d -f %d -w %d "
-        + "-l (com.yahoo.labs.samoa.learners.classifiers.trees.VerticalHoeffdingTree -p 4) " +
-        "-s (com.yahoo.labs.samoa.moa.streams.generators.RandomTreeGenerator -c 2 -o 10 -u 10)";
+        + "-l (org.apache.samoa.learners.classifiers.trees.VerticalHoeffdingTree -p 4) " +
+        "-s (org.apache.samoa.moa.streams.generators.RandomTreeGenerator -c 2 -o 10 -u 10)";
 
     public final static String PREQEVAL_NAIVEBAYES_HYPERPLANE = "PrequentialEvaluation -d %s -i %d -f %d -w %d "
-        + "-l (classifiers.SingleClassifier -l com.yahoo.labs.samoa.learners.classifiers.NaiveBayes) " +
-        "-s (com.yahoo.labs.samoa.moa.streams.generators.HyperplaneGenerator -c 2)";
+        + "-l (classifiers.SingleClassifier -l org.apache.samoa.learners.classifiers.NaiveBayes) " +
+        "-s (org.apache.samoa.moa.streams.generators.HyperplaneGenerator -c 2)";
 
     // setting the number of nominal attributes to zero significantly reduces
     // the processing time,
     // so that it's acceptable in a test case
     public final static String PREQEVAL_BAGGING_RANDOMTREE = "PrequentialEvaluation -d %s -i %d -f %d -w %d "
-        + "-l (com.yahoo.labs.samoa.learners.classifiers.ensemble.Bagging) " +
-        "-s (com.yahoo.labs.samoa.moa.streams.generators.RandomTreeGenerator -c 2 -o 0 -u 10)";
+        + "-l (org.apache.samoa.learners.classifiers.ensemble.Bagging) " +
+        "-s (org.apache.samoa.moa.streams.generators.RandomTreeGenerator -c 2 -o 0 -u 10)";
 
   }
 
diff --git a/samoa-test/src/test/java/com/yahoo/labs/samoa/TestUtils.java b/samoa-test/src/test/java/org/apache/samoa/TestUtils.java
similarity index 87%
rename from samoa-test/src/test/java/com/yahoo/labs/samoa/TestUtils.java
rename to samoa-test/src/test/java/org/apache/samoa/TestUtils.java
index ae226c7..320b8a8 100644
--- a/samoa-test/src/test/java/com/yahoo/labs/samoa/TestUtils.java
+++ b/samoa-test/src/test/java/org/apache/samoa/TestUtils.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa;/*
+package org.apache.samoa;/*
 * #%L
 * SAMOA
 * %%
@@ -89,7 +89,7 @@
     assertResults(tempFile, testParams);
   }
 
-  public static void assertResults(File outputFile, com.yahoo.labs.samoa.TestParams testParams) throws IOException {
+  public static void assertResults(File outputFile, org.apache.samoa.TestParams testParams) throws IOException {
 
     LOG.info("Checking results file " + outputFile.getAbsolutePath());
     // 1. parse result file with csv parser
@@ -102,13 +102,13 @@
     Assert.assertEquals("Invalid number of columns", 5, header.size());
 
     Assert
-        .assertEquals("Unexpected column", com.yahoo.labs.samoa.TestParams.EVALUATION_INSTANCES, header.get(0).trim());
+        .assertEquals("Unexpected column", org.apache.samoa.TestParams.EVALUATION_INSTANCES, header.get(0).trim());
     Assert
-        .assertEquals("Unexpected column", com.yahoo.labs.samoa.TestParams.CLASSIFIED_INSTANCES, header.get(1).trim());
-    Assert.assertEquals("Unexpected column", com.yahoo.labs.samoa.TestParams.CLASSIFICATIONS_CORRECT, header.get(2)
+        .assertEquals("Unexpected column", org.apache.samoa.TestParams.CLASSIFIED_INSTANCES, header.get(1).trim());
+    Assert.assertEquals("Unexpected column", org.apache.samoa.TestParams.CLASSIFICATIONS_CORRECT, header.get(2)
         .trim());
-    Assert.assertEquals("Unexpected column", com.yahoo.labs.samoa.TestParams.KAPPA_STAT, header.get(3).trim());
-    Assert.assertEquals("Unexpected column", com.yahoo.labs.samoa.TestParams.KAPPA_TEMP_STAT, header.get(4).trim());
+    Assert.assertEquals("Unexpected column", org.apache.samoa.TestParams.KAPPA_STAT, header.get(3).trim());
+    Assert.assertEquals("Unexpected column", org.apache.samoa.TestParams.KAPPA_TEMP_STAT, header.get(4).trim());
 
     // 2. check last line result
     while (iterator.hasNext()) {
diff --git a/samoa-threads/pom.xml b/samoa-threads/pom.xml
index a7d9ab5..2634ef0 100644
--- a/samoa-threads/pom.xml
+++ b/samoa-threads/pom.xml
@@ -31,14 +31,14 @@
 
   <artifactId>samoa-threads</artifactId>
   <parent>
-    <groupId>com.yahoo.labs.samoa</groupId>
+    <groupId>org.apache.samoa</groupId>
     <artifactId>samoa</artifactId>
     <version>0.3.0-SNAPSHOT</version>
   </parent>
 
   <dependencies>
     <dependency>
-      <groupId>com.yahoo.labs.samoa</groupId>
+      <groupId>org.apache.samoa</groupId>
       <artifactId>samoa-api</artifactId>
       <version>${project.version}</version>
       <exclusions>
@@ -53,7 +53,7 @@
       </exclusions>
     </dependency>
     <dependency>
-      <groupId>com.yahoo.labs.samoa</groupId>
+      <groupId>org.apache.samoa</groupId>
       <artifactId>samoa-test</artifactId>
       <type>test-jar</type>
       <classifier>test-jar-with-dependencies</classifier>
diff --git a/samoa-threads/src/main/java/com/yahoo/labs/samoa/LocalThreadsDoTask.java b/samoa-threads/src/main/java/org/apache/samoa/LocalThreadsDoTask.java
similarity index 90%
rename from samoa-threads/src/main/java/com/yahoo/labs/samoa/LocalThreadsDoTask.java
rename to samoa-threads/src/main/java/org/apache/samoa/LocalThreadsDoTask.java
index 2ac9ec1..3b5ca06 100644
--- a/samoa-threads/src/main/java/com/yahoo/labs/samoa/LocalThreadsDoTask.java
+++ b/samoa-threads/src/main/java/org/apache/samoa/LocalThreadsDoTask.java
@@ -1,15 +1,15 @@
-package com.yahoo.labs.samoa;
+package org.apache.samoa;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 
+import org.apache.samoa.tasks.Task;
+import org.apache.samoa.topology.impl.ThreadsComponentFactory;
+import org.apache.samoa.topology.impl.ThreadsEngine;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.github.javacliparser.ClassOption;
-import com.yahoo.labs.samoa.tasks.Task;
-import com.yahoo.labs.samoa.topology.impl.ThreadsComponentFactory;
-import com.yahoo.labs.samoa.topology.impl.ThreadsEngine;
 
 /**
  * @author Anh Thu Vu
diff --git a/samoa-threads/src/main/java/com/yahoo/labs/samoa/topology/impl/ThreadsComponentFactory.java b/samoa-threads/src/main/java/org/apache/samoa/topology/impl/ThreadsComponentFactory.java
similarity index 76%
rename from samoa-threads/src/main/java/com/yahoo/labs/samoa/topology/impl/ThreadsComponentFactory.java
rename to samoa-threads/src/main/java/org/apache/samoa/topology/impl/ThreadsComponentFactory.java
index 91f213b..e27487b 100644
--- a/samoa-threads/src/main/java/com/yahoo/labs/samoa/topology/impl/ThreadsComponentFactory.java
+++ b/samoa-threads/src/main/java/org/apache/samoa/topology/impl/ThreadsComponentFactory.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -20,14 +20,14 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.core.EntranceProcessor;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.topology.ComponentFactory;
-import com.yahoo.labs.samoa.topology.EntranceProcessingItem;
-import com.yahoo.labs.samoa.topology.IProcessingItem;
-import com.yahoo.labs.samoa.topology.ProcessingItem;
-import com.yahoo.labs.samoa.topology.Stream;
-import com.yahoo.labs.samoa.topology.Topology;
+import org.apache.samoa.core.EntranceProcessor;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.topology.ComponentFactory;
+import org.apache.samoa.topology.EntranceProcessingItem;
+import org.apache.samoa.topology.IProcessingItem;
+import org.apache.samoa.topology.ProcessingItem;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.topology.Topology;
 
 /**
  * ComponentFactory for multithreaded engine
diff --git a/samoa-threads/src/main/java/com/yahoo/labs/samoa/topology/impl/ThreadsEngine.java b/samoa-threads/src/main/java/org/apache/samoa/topology/impl/ThreadsEngine.java
similarity index 96%
rename from samoa-threads/src/main/java/com/yahoo/labs/samoa/topology/impl/ThreadsEngine.java
rename to samoa-threads/src/main/java/org/apache/samoa/topology/impl/ThreadsEngine.java
index c266c09..5deb962 100644
--- a/samoa-threads/src/main/java/com/yahoo/labs/samoa/topology/impl/ThreadsEngine.java
+++ b/samoa-threads/src/main/java/org/apache/samoa/topology/impl/ThreadsEngine.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -20,14 +20,14 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.topology.Topology;
-
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.samoa.topology.Topology;
+
 /**
  * Multithreaded engine.
  * 
diff --git a/samoa-threads/src/main/java/com/yahoo/labs/samoa/topology/impl/ThreadsEntranceProcessingItem.java b/samoa-threads/src/main/java/org/apache/samoa/topology/impl/ThreadsEntranceProcessingItem.java
similarity index 86%
rename from samoa-threads/src/main/java/com/yahoo/labs/samoa/topology/impl/ThreadsEntranceProcessingItem.java
rename to samoa-threads/src/main/java/org/apache/samoa/topology/impl/ThreadsEntranceProcessingItem.java
index 470c164..6c09a60 100644
--- a/samoa-threads/src/main/java/com/yahoo/labs/samoa/topology/impl/ThreadsEntranceProcessingItem.java
+++ b/samoa-threads/src/main/java/org/apache/samoa/topology/impl/ThreadsEntranceProcessingItem.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -20,8 +20,8 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.core.EntranceProcessor;
-import com.yahoo.labs.samoa.topology.LocalEntranceProcessingItem;
+import org.apache.samoa.core.EntranceProcessor;
+import org.apache.samoa.topology.LocalEntranceProcessingItem;
 
 /**
  * EntranceProcessingItem for multithreaded engine.
diff --git a/samoa-threads/src/main/java/com/yahoo/labs/samoa/topology/impl/ThreadsEventRunnable.java b/samoa-threads/src/main/java/org/apache/samoa/topology/impl/ThreadsEventRunnable.java
similarity index 94%
rename from samoa-threads/src/main/java/com/yahoo/labs/samoa/topology/impl/ThreadsEventRunnable.java
rename to samoa-threads/src/main/java/org/apache/samoa/topology/impl/ThreadsEventRunnable.java
index 5c4c9e9..d812db8 100644
--- a/samoa-threads/src/main/java/com/yahoo/labs/samoa/topology/impl/ThreadsEventRunnable.java
+++ b/samoa-threads/src/main/java/org/apache/samoa/topology/impl/ThreadsEventRunnable.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -20,7 +20,7 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.core.ContentEvent;
+import org.apache.samoa.core.ContentEvent;
 
 /**
  * Runnable class where each object corresponds to a ContentEvent and an assigned PI. When a PI receives a ContentEvent,
diff --git a/samoa-threads/src/main/java/com/yahoo/labs/samoa/topology/impl/ThreadsProcessingItem.java b/samoa-threads/src/main/java/org/apache/samoa/topology/impl/ThreadsProcessingItem.java
similarity index 88%
rename from samoa-threads/src/main/java/com/yahoo/labs/samoa/topology/impl/ThreadsProcessingItem.java
rename to samoa-threads/src/main/java/org/apache/samoa/topology/impl/ThreadsProcessingItem.java
index 1b83a05..de24a8d 100644
--- a/samoa-threads/src/main/java/com/yahoo/labs/samoa/topology/impl/ThreadsProcessingItem.java
+++ b/samoa-threads/src/main/java/org/apache/samoa/topology/impl/ThreadsProcessingItem.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -23,13 +23,13 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.topology.AbstractProcessingItem;
-import com.yahoo.labs.samoa.topology.ProcessingItem;
-import com.yahoo.labs.samoa.topology.Stream;
-import com.yahoo.labs.samoa.utils.PartitioningScheme;
-import com.yahoo.labs.samoa.utils.StreamDestination;
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.topology.AbstractProcessingItem;
+import org.apache.samoa.topology.ProcessingItem;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.utils.PartitioningScheme;
+import org.apache.samoa.utils.StreamDestination;
 
 /**
  * ProcessingItem for multithreaded engine.
diff --git a/samoa-threads/src/main/java/com/yahoo/labs/samoa/topology/impl/ThreadsProcessingItemInstance.java b/samoa-threads/src/main/java/org/apache/samoa/topology/impl/ThreadsProcessingItemInstance.java
similarity index 90%
rename from samoa-threads/src/main/java/com/yahoo/labs/samoa/topology/impl/ThreadsProcessingItemInstance.java
rename to samoa-threads/src/main/java/org/apache/samoa/topology/impl/ThreadsProcessingItemInstance.java
index 930973b..a736cd1 100644
--- a/samoa-threads/src/main/java/com/yahoo/labs/samoa/topology/impl/ThreadsProcessingItemInstance.java
+++ b/samoa-threads/src/main/java/org/apache/samoa/topology/impl/ThreadsProcessingItemInstance.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -20,8 +20,8 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.Processor;
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.Processor;
 
 /**
  * Lightweight replicas of ThreadProcessingItem. ThreadsProcessingItem manages a list of these objects and assigns each
diff --git a/samoa-threads/src/main/java/com/yahoo/labs/samoa/topology/impl/ThreadsStream.java b/samoa-threads/src/main/java/org/apache/samoa/topology/impl/ThreadsStream.java
similarity index 91%
rename from samoa-threads/src/main/java/com/yahoo/labs/samoa/topology/impl/ThreadsStream.java
rename to samoa-threads/src/main/java/org/apache/samoa/topology/impl/ThreadsStream.java
index 2c02df7..d56ae2d 100644
--- a/samoa-threads/src/main/java/com/yahoo/labs/samoa/topology/impl/ThreadsStream.java
+++ b/samoa-threads/src/main/java/org/apache/samoa/topology/impl/ThreadsStream.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -24,11 +24,10 @@
 import java.util.List;
 
 import org.apache.commons.lang3.builder.HashCodeBuilder;
-
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.topology.IProcessingItem;
-import com.yahoo.labs.samoa.topology.AbstractStream;
-import com.yahoo.labs.samoa.utils.StreamDestination;
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.topology.AbstractStream;
+import org.apache.samoa.topology.IProcessingItem;
+import org.apache.samoa.utils.StreamDestination;
 
 /**
  * Stream for multithreaded engine.
diff --git a/samoa-threads/src/main/java/com/yahoo/labs/samoa/topology/impl/ThreadsTopology.java b/samoa-threads/src/main/java/org/apache/samoa/topology/impl/ThreadsTopology.java
similarity index 92%
rename from samoa-threads/src/main/java/com/yahoo/labs/samoa/topology/impl/ThreadsTopology.java
rename to samoa-threads/src/main/java/org/apache/samoa/topology/impl/ThreadsTopology.java
index 4ce5e2b..4a7876a 100644
--- a/samoa-threads/src/main/java/com/yahoo/labs/samoa/topology/impl/ThreadsTopology.java
+++ b/samoa-threads/src/main/java/org/apache/samoa/topology/impl/ThreadsTopology.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -20,8 +20,8 @@
  * #L%
  */
 
-import com.yahoo.labs.samoa.topology.AbstractTopology;
-import com.yahoo.labs.samoa.topology.IProcessingItem;
+import org.apache.samoa.topology.AbstractTopology;
+import org.apache.samoa.topology.IProcessingItem;
 
 /**
  * Topology for multithreaded engine.
diff --git a/samoa-threads/src/test/java/com/yahoo/labs/samoa/AlgosTest.java b/samoa-threads/src/test/java/org/apache/samoa/AlgosTest.java
similarity index 93%
rename from samoa-threads/src/test/java/com/yahoo/labs/samoa/AlgosTest.java
rename to samoa-threads/src/test/java/org/apache/samoa/AlgosTest.java
index c2789b9..e14b1e4 100644
--- a/samoa-threads/src/test/java/com/yahoo/labs/samoa/AlgosTest.java
+++ b/samoa-threads/src/test/java/org/apache/samoa/AlgosTest.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa;
+package org.apache.samoa;
 
 /*
  * #%L
@@ -20,6 +20,9 @@
  * #L%
  */
 
+import org.apache.samoa.LocalThreadsDoTask;
+import org.apache.samoa.TestParams;
+import org.apache.samoa.TestUtils;
 import org.junit.Test;
 
 public class AlgosTest {
diff --git a/samoa-threads/src/test/java/com/yahoo/labs/samoa/topology/impl/ThreadsComponentFactoryTest.java b/samoa-threads/src/test/java/org/apache/samoa/topology/impl/ThreadsComponentFactoryTest.java
similarity index 84%
rename from samoa-threads/src/test/java/com/yahoo/labs/samoa/topology/impl/ThreadsComponentFactoryTest.java
rename to samoa-threads/src/test/java/org/apache/samoa/topology/impl/ThreadsComponentFactoryTest.java
index 12b5b90..24762e3 100644
--- a/samoa-threads/src/test/java/com/yahoo/labs/samoa/topology/impl/ThreadsComponentFactoryTest.java
+++ b/samoa-threads/src/test/java/org/apache/samoa/topology/impl/ThreadsComponentFactoryTest.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -25,16 +25,20 @@
 import mockit.NonStrictExpectations;
 import mockit.Tested;
 
+import org.apache.samoa.core.EntranceProcessor;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.topology.EntranceProcessingItem;
+import org.apache.samoa.topology.ProcessingItem;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.topology.Topology;
+import org.apache.samoa.topology.impl.ThreadsComponentFactory;
+import org.apache.samoa.topology.impl.ThreadsEntranceProcessingItem;
+import org.apache.samoa.topology.impl.ThreadsProcessingItem;
+import org.apache.samoa.topology.impl.ThreadsStream;
+import org.apache.samoa.topology.impl.ThreadsTopology;
 import org.junit.Before;
 import org.junit.Test;
 
-import com.yahoo.labs.samoa.core.EntranceProcessor;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.topology.EntranceProcessingItem;
-import com.yahoo.labs.samoa.topology.ProcessingItem;
-import com.yahoo.labs.samoa.topology.Stream;
-import com.yahoo.labs.samoa.topology.Topology;
-
 /**
  * @author Anh Thu Vu
  * 
diff --git a/samoa-threads/src/test/java/com/yahoo/labs/samoa/topology/impl/ThreadsEngineTest.java b/samoa-threads/src/test/java/org/apache/samoa/topology/impl/ThreadsEngineTest.java
similarity index 95%
rename from samoa-threads/src/test/java/com/yahoo/labs/samoa/topology/impl/ThreadsEngineTest.java
rename to samoa-threads/src/test/java/org/apache/samoa/topology/impl/ThreadsEngineTest.java
index c8a3c3d..cf8ec34 100644
--- a/samoa-threads/src/test/java/com/yahoo/labs/samoa/topology/impl/ThreadsEngineTest.java
+++ b/samoa-threads/src/test/java/org/apache/samoa/topology/impl/ThreadsEngineTest.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 /*
  * #%L
@@ -24,6 +24,8 @@
 import mockit.Mocked;
 import mockit.Verifications;
 
+import org.apache.samoa.topology.impl.ThreadsEngine;
+import org.apache.samoa.topology.impl.ThreadsTopology;
 import org.junit.After;
 import org.junit.Test;
 
diff --git a/samoa-threads/src/test/java/com/yahoo/labs/samoa/topology/impl/ThreadsEntranceProcessingItemTest.java b/samoa-threads/src/test/java/org/apache/samoa/topology/impl/ThreadsEntranceProcessingItemTest.java
similarity index 93%
rename from samoa-threads/src/test/java/com/yahoo/labs/samoa/topology/impl/ThreadsEntranceProcessingItemTest.java
rename to samoa-threads/src/test/java/org/apache/samoa/topology/impl/ThreadsEntranceProcessingItemTest.java
index db2a3fb..355da61 100644
--- a/samoa-threads/src/test/java/com/yahoo/labs/samoa/topology/impl/ThreadsEntranceProcessingItemTest.java
+++ b/samoa-threads/src/test/java/org/apache/samoa/topology/impl/ThreadsEntranceProcessingItemTest.java
@@ -17,7 +17,7 @@
  * limitations under the License.
  * #L%
  */
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 import static org.junit.Assert.*;
 import mockit.Mocked;
@@ -25,13 +25,13 @@
 import mockit.Tested;
 import mockit.Verifications;
 
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.EntranceProcessor;
+import org.apache.samoa.topology.Stream;
+import org.apache.samoa.topology.impl.ThreadsEntranceProcessingItem;
 import org.junit.Before;
 import org.junit.Test;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.EntranceProcessor;
-import com.yahoo.labs.samoa.topology.Stream;
-
 /**
  * @author Anh Thu Vu
  * 
diff --git a/samoa-threads/src/test/java/com/yahoo/labs/samoa/topology/impl/ThreadsEventRunnableTest.java b/samoa-threads/src/test/java/org/apache/samoa/topology/impl/ThreadsEventRunnableTest.java
similarity index 87%
rename from samoa-threads/src/test/java/com/yahoo/labs/samoa/topology/impl/ThreadsEventRunnableTest.java
rename to samoa-threads/src/test/java/org/apache/samoa/topology/impl/ThreadsEventRunnableTest.java
index 1e70d10..c5afe80 100644
--- a/samoa-threads/src/test/java/com/yahoo/labs/samoa/topology/impl/ThreadsEventRunnableTest.java
+++ b/samoa-threads/src/test/java/org/apache/samoa/topology/impl/ThreadsEventRunnableTest.java
@@ -17,18 +17,19 @@
  * limitations under the License.
  * #L%
  */
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 import static org.junit.Assert.*;
 import mockit.Mocked;
 import mockit.Tested;
 import mockit.Verifications;
 
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.topology.impl.ThreadsEventRunnable;
+import org.apache.samoa.topology.impl.ThreadsProcessingItemInstance;
 import org.junit.Before;
 import org.junit.Test;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-
 /**
  * @author Anh Thu Vu
  * 
diff --git a/samoa-threads/src/test/java/com/yahoo/labs/samoa/topology/impl/ThreadsProcessingItemInstanceTest.java b/samoa-threads/src/test/java/org/apache/samoa/topology/impl/ThreadsProcessingItemInstanceTest.java
similarity index 89%
rename from samoa-threads/src/test/java/com/yahoo/labs/samoa/topology/impl/ThreadsProcessingItemInstanceTest.java
rename to samoa-threads/src/test/java/org/apache/samoa/topology/impl/ThreadsProcessingItemInstanceTest.java
index d4f78b0..7b64e48 100644
--- a/samoa-threads/src/test/java/com/yahoo/labs/samoa/topology/impl/ThreadsProcessingItemInstanceTest.java
+++ b/samoa-threads/src/test/java/org/apache/samoa/topology/impl/ThreadsProcessingItemInstanceTest.java
@@ -17,19 +17,19 @@
  * limitations under the License.
  * #L%
  */
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 import static org.junit.Assert.*;
 import mockit.Mocked;
 import mockit.Tested;
 import mockit.Verifications;
 
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.topology.impl.ThreadsProcessingItemInstance;
 import org.junit.Before;
 import org.junit.Test;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.Processor;
-
 /**
  * @author Anh Thu Vu
  * 
diff --git a/samoa-threads/src/test/java/com/yahoo/labs/samoa/topology/impl/ThreadsProcessingItemTest.java b/samoa-threads/src/test/java/org/apache/samoa/topology/impl/ThreadsProcessingItemTest.java
similarity index 89%
rename from samoa-threads/src/test/java/com/yahoo/labs/samoa/topology/impl/ThreadsProcessingItemTest.java
rename to samoa-threads/src/test/java/org/apache/samoa/topology/impl/ThreadsProcessingItemTest.java
index d148e8e..0f59936 100644
--- a/samoa-threads/src/test/java/com/yahoo/labs/samoa/topology/impl/ThreadsProcessingItemTest.java
+++ b/samoa-threads/src/test/java/org/apache/samoa/topology/impl/ThreadsProcessingItemTest.java
@@ -17,7 +17,7 @@
  * limitations under the License.
  * #L%
  */
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 import static org.junit.Assert.*;
 
@@ -29,14 +29,18 @@
 import mockit.NonStrictExpectations;
 import mockit.Tested;
 
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.core.Processor;
+import org.apache.samoa.topology.impl.ThreadsEngine;
+import org.apache.samoa.topology.impl.ThreadsEventRunnable;
+import org.apache.samoa.topology.impl.ThreadsProcessingItem;
+import org.apache.samoa.topology.impl.ThreadsProcessingItemInstance;
+import org.apache.samoa.topology.impl.ThreadsStream;
+import org.apache.samoa.utils.PartitioningScheme;
+import org.apache.samoa.utils.StreamDestination;
 import org.junit.Before;
 import org.junit.Test;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.core.Processor;
-import com.yahoo.labs.samoa.utils.PartitioningScheme;
-import com.yahoo.labs.samoa.utils.StreamDestination;
-
 /**
  * @author Anh Thu Vu
  * 
diff --git a/samoa-threads/src/test/java/com/yahoo/labs/samoa/topology/impl/ThreadsStreamTest.java b/samoa-threads/src/test/java/org/apache/samoa/topology/impl/ThreadsStreamTest.java
similarity index 91%
rename from samoa-threads/src/test/java/com/yahoo/labs/samoa/topology/impl/ThreadsStreamTest.java
rename to samoa-threads/src/test/java/org/apache/samoa/topology/impl/ThreadsStreamTest.java
index abe57ce..ef970ab 100644
--- a/samoa-threads/src/test/java/com/yahoo/labs/samoa/topology/impl/ThreadsStreamTest.java
+++ b/samoa-threads/src/test/java/org/apache/samoa/topology/impl/ThreadsStreamTest.java
@@ -17,7 +17,7 @@
  * limitations under the License.
  * #L%
  */
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 import static org.junit.Assert.*;
 
@@ -29,16 +29,17 @@
 import mockit.NonStrictExpectations;
 import mockit.Tested;
 
+import org.apache.samoa.core.ContentEvent;
+import org.apache.samoa.topology.impl.ThreadsProcessingItem;
+import org.apache.samoa.topology.impl.ThreadsStream;
+import org.apache.samoa.utils.PartitioningScheme;
+import org.apache.samoa.utils.StreamDestination;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 import org.junit.runners.Parameterized.Parameters;
 
-import com.yahoo.labs.samoa.core.ContentEvent;
-import com.yahoo.labs.samoa.utils.PartitioningScheme;
-import com.yahoo.labs.samoa.utils.StreamDestination;
-
 /**
  * @author Anh Thu Vu
  * 
diff --git a/samoa-threads/src/test/java/com/yahoo/labs/samoa/topology/impl/ThreadsTopologyTest.java b/samoa-threads/src/test/java/org/apache/samoa/topology/impl/ThreadsTopologyTest.java
similarity index 88%
rename from samoa-threads/src/test/java/com/yahoo/labs/samoa/topology/impl/ThreadsTopologyTest.java
rename to samoa-threads/src/test/java/org/apache/samoa/topology/impl/ThreadsTopologyTest.java
index 6891a63..fb593ae 100644
--- a/samoa-threads/src/test/java/com/yahoo/labs/samoa/topology/impl/ThreadsTopologyTest.java
+++ b/samoa-threads/src/test/java/org/apache/samoa/topology/impl/ThreadsTopologyTest.java
@@ -17,7 +17,7 @@
  * limitations under the License.
  * #L%
  */
-package com.yahoo.labs.samoa.topology.impl;
+package org.apache.samoa.topology.impl;
 
 import static org.junit.Assert.*;
 
@@ -27,12 +27,13 @@
 import mockit.Mocked;
 import mockit.Tested;
 
+import org.apache.samoa.core.EntranceProcessor;
+import org.apache.samoa.topology.EntranceProcessingItem;
+import org.apache.samoa.topology.impl.ThreadsEntranceProcessingItem;
+import org.apache.samoa.topology.impl.ThreadsTopology;
 import org.junit.Before;
 import org.junit.Test;
 
-import com.yahoo.labs.samoa.core.EntranceProcessor;
-import com.yahoo.labs.samoa.topology.EntranceProcessingItem;
-
 /**
  * @author Anh Thu Vu
  * 
diff --git a/samoa-threads/src/test/java/com/yahoo/labs/samoa/utils/StreamDestinationTest.java b/samoa-threads/src/test/java/org/apache/samoa/utils/StreamDestinationTest.java
similarity index 91%
rename from samoa-threads/src/test/java/com/yahoo/labs/samoa/utils/StreamDestinationTest.java
rename to samoa-threads/src/test/java/org/apache/samoa/utils/StreamDestinationTest.java
index c165b3e..aa3ec74 100644
--- a/samoa-threads/src/test/java/com/yahoo/labs/samoa/utils/StreamDestinationTest.java
+++ b/samoa-threads/src/test/java/org/apache/samoa/utils/StreamDestinationTest.java
@@ -1,4 +1,4 @@
-package com.yahoo.labs.samoa.utils;
+package org.apache.samoa.utils;
 
 /*
  * #%L
@@ -28,16 +28,15 @@
 import mockit.Mocked;
 import mockit.Tested;
 
+import org.apache.samoa.topology.IProcessingItem;
+import org.apache.samoa.utils.PartitioningScheme;
+import org.apache.samoa.utils.StreamDestination;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 import org.junit.runners.Parameterized.Parameters;
 
-import com.yahoo.labs.samoa.topology.IProcessingItem;
-import com.yahoo.labs.samoa.utils.PartitioningScheme;
-import com.yahoo.labs.samoa.utils.StreamDestination;
-
 /**
  * @author Anh Thu Vu
  * 
