You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mxnet.apache.org by li...@apache.org on 2018/01/07 06:58:51 UTC

[incubator-mxnet] branch master updated: Refactor scala code/tests/examples/docs to use org.apache.mxnet (#9324)

This is an automated email from the ASF dual-hosted git repository.

liuyizhi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-mxnet.git


The following commit(s) were added to refs/heads/master by this push:
     new deb25bc  Refactor scala code/tests/examples/docs to use org.apache.mxnet (#9324)
deb25bc is described below

commit deb25bca9803cac338faedb2eb14dfda22813b75
Author: Roshani Nagmote <ro...@gmail.com>
AuthorDate: Sat Jan 6 22:58:44 2018 -0800

    Refactor scala code/tests/examples/docs to use org.apache.mxnet (#9324)
    
    * refactor scala code/tests/examples/docs to use org.apache.mxnet
---
 docs/api/scala/index.md                            |  20 +-
 docs/api/scala/io.md                               |   6 +-
 docs/api/scala/kvstore.md                          |   5 +-
 docs/api/scala/model.md                            |   4 +-
 docs/api/scala/module.md                           |  10 +-
 docs/api/scala/ndarray.md                          |  26 +--
 docs/api/scala/symbol.md                           |  16 +-
 docs/mxdoc.py                                      |   4 +-
 docs/tutorials/scala/char_lstm.md                  |  44 ++--
 docs/tutorials/scala/mnist.md                      |   4 +-
 docs/tutorials/scala/mxnet_scala_on_intellij.md    |   2 +-
 scala-package/README.md                            |  22 +-
 scala-package/assembly/linux-x86_64-cpu/pom.xml    |   6 +-
 .../src/main/assembly/assembly.xml                 |   2 +-
 scala-package/assembly/linux-x86_64-gpu/pom.xml    |   6 +-
 .../src/main/assembly/assembly.xml                 |   2 +-
 scala-package/assembly/osx-x86_64-cpu/pom.xml      |   6 +-
 .../osx-x86_64-cpu/src/main/assembly/assembly.xml  |   2 +-
 scala-package/assembly/pom.xml                     |   2 +-
 scala-package/core/pom.xml                         |   6 +-
 .../{ml/dmlc => org/apache}/mxnet/AttrScope.scala  |   2 +-
 .../scala/{ml/dmlc => org/apache}/mxnet/Base.scala |   4 +-
 .../{ml/dmlc => org/apache}/mxnet/Callback.scala   |   2 +-
 .../{ml/dmlc => org/apache}/mxnet/Context.scala    |   2 +-
 .../{ml/dmlc => org/apache}/mxnet/DType.scala      |   2 +-
 .../{ml/dmlc => org/apache}/mxnet/EvalMetric.scala |   2 +-
 .../{ml/dmlc => org/apache}/mxnet/Executor.scala   |   4 +-
 .../apache}/mxnet/ExecutorManager.scala            |   4 +-
 .../dmlc => org/apache}/mxnet/FeedForward.scala    |   6 +-
 .../scala/{ml/dmlc => org/apache}/mxnet/IO.scala   |   8 +-
 .../dmlc => org/apache}/mxnet/Initializer.scala    |   2 +-
 .../{ml/dmlc => org/apache}/mxnet/KVStore.scala    |   4 +-
 .../dmlc => org/apache}/mxnet/KVStoreServer.scala  |   4 +-
 .../dmlc => org/apache}/mxnet/LRScheduler.scala    |   2 +-
 .../{ml/dmlc => org/apache}/mxnet/LibInfo.scala    |   4 +-
 .../{ml/dmlc => org/apache}/mxnet/Model.scala      |   2 +-
 .../{ml/dmlc => org/apache}/mxnet/Monitor.scala    |   4 +-
 .../{ml/dmlc => org/apache}/mxnet/NDArray.scala    |   6 +-
 .../dmlc => org/apache}/mxnet/NameManager.scala    |   2 +-
 .../{ml/dmlc => org/apache}/mxnet/Operator.scala   |   6 +-
 .../{ml/dmlc => org/apache}/mxnet/Optimizer.scala  |   2 +-
 .../{ml/dmlc => org/apache}/mxnet/Profiler.scala   |   4 +-
 .../{ml/dmlc => org/apache}/mxnet/Random.scala     |   4 +-
 .../{ml/dmlc => org/apache}/mxnet/RecordIO.scala   |   4 +-
 .../scala/{ml/dmlc => org/apache}/mxnet/Rtc.scala  |   4 +-
 .../{ml/dmlc => org/apache}/mxnet/Serializer.scala |   2 +-
 .../{ml/dmlc => org/apache}/mxnet/Shape.scala      |   2 +-
 .../{ml/dmlc => org/apache}/mxnet/Symbol.scala     |   6 +-
 .../dmlc => org/apache}/mxnet/Visualization.scala  |   2 +-
 .../apache}/mxnet/contrib/NDArray.scala            |   6 +-
 .../dmlc => org/apache}/mxnet/contrib/Symbol.scala |   6 +-
 .../dmlc => org/apache}/mxnet/io/MXDataIter.scala  |   8 +-
 .../dmlc => org/apache}/mxnet/io/NDArrayIter.scala |   6 +-
 .../apache}/mxnet/io/PrefetchingIter.scala         |   4 +-
 .../dmlc => org/apache}/mxnet/io/ResizeIter.scala  |   4 +-
 .../apache}/mxnet/module/BaseModule.scala          |   8 +-
 .../apache}/mxnet/module/BucketingModule.scala     |   8 +-
 .../mxnet/module/DataParallelExecutorGroup.scala   |   8 +-
 .../dmlc => org/apache}/mxnet/module/Module.scala  |  10 +-
 .../apache}/mxnet/module/SequentialModule.scala    |   6 +-
 .../apache}/mxnet/optimizer/AdaDelta.scala         |   8 +-
 .../apache}/mxnet/optimizer/AdaGrad.scala          |   6 +-
 .../dmlc => org/apache}/mxnet/optimizer/Adam.scala |   8 +-
 .../apache}/mxnet/optimizer/DCASGD.scala           |   8 +-
 .../dmlc => org/apache}/mxnet/optimizer/NAG.scala  |   6 +-
 .../apache}/mxnet/optimizer/RMSProp.scala          |   8 +-
 .../dmlc => org/apache}/mxnet/optimizer/SGD.scala  |   6 +-
 .../dmlc => org/apache}/mxnet/optimizer/SGLD.scala |   8 +-
 .../apache}/mxnet/util/NativeLibraryLoader.scala   |   2 +-
 .../apache}/mxnet/util/SerializerUtils.scala       |   4 +-
 .../apache}/mxnet/util/WarnIfNotDisposed.scala     |   2 +-
 .../dmlc => org/apache}/mxnet/AttrScopeSuite.scala |   2 +-
 .../{ml/dmlc => org/apache}/mxnet/CheckUtils.scala |   2 +-
 .../dmlc => org/apache}/mxnet/ExecutorSuite.scala  |   4 +-
 .../{ml/dmlc => org/apache}/mxnet/IOSuite.scala    |   4 +-
 .../dmlc => org/apache}/mxnet/KVStoreSuite.scala   |   2 +-
 .../apache}/mxnet/ModelParallelSuite.scala         |   4 +-
 .../dmlc => org/apache}/mxnet/ModuleSuite.scala    |  10 +-
 .../dmlc => org/apache}/mxnet/NDArraySuite.scala   |   4 +-
 .../dmlc => org/apache}/mxnet/OperatorSuite.scala  |  12 +-
 .../dmlc => org/apache}/mxnet/RandomSuite.scala    |   2 +-
 .../dmlc => org/apache}/mxnet/RecordIOSuite.scala  |   2 +-
 .../apache}/mxnet/SerializerSuite.scala            |   4 +-
 .../{ml/dmlc => org/apache}/mxnet/ShapeSuite.scala |   2 +-
 .../dmlc => org/apache}/mxnet/SymbolSuite.scala    |   2 +-
 .../{ml/dmlc => org/apache}/mxnet/TestUtil.scala   |   2 +-
 .../dmlc => org/apache}/mxnet/gpu/RtcSuite.scala   |   2 +-
 .../apache}/mxnet/train/ConvSuite.scala            |   6 +-
 .../apache}/mxnet/util/SerializerUtilsSuite.scala  |   4 +-
 .../apache}/mxnet/util/WarnIfNotDiposedSuite.scala |   2 +-
 scala-package/dev/change-artifact-id.sh            |   2 +-
 scala-package/examples/pom.xml                     |   4 +-
 .../examples/scripts/customop/run_customop.sh      |   2 +-
 .../scripts/customop/run_customopwithrtc.sh        |   2 +-
 scala-package/examples/scripts/module/mnist_mlp.sh |   2 +-
 .../scripts/module/run_sequential_module.sh        |   2 +-
 .../neuralstyle_end2end/run_test_end2end.sh        |   2 +-
 .../neuralstyle_end2end/run_train_end2end.sh       |   2 +-
 .../scripts/profiler/run_profiler_matmul.sh        |   2 +-
 .../scripts/profiler/run_profiler_ndarray.sh       |   2 +-
 .../examples/scripts/rnn/run_lstm_bucketing.sh     |   2 +-
 .../examples/scripts/rnn/run_test_charrnn.sh       |   2 +-
 .../examples/scripts/rnn/run_train_charrnn.sh      |   2 +-
 .../examples/scripts/run_cnntextclassification.sh  |   2 +-
 scala-package/examples/scripts/run_gan_mnist.sh    |   2 +-
 scala-package/examples/scripts/run_multitask.sh    |   2 +-
 scala-package/examples/scripts/run_neuralstyle.sh  |   2 +-
 .../examples/scripts/run_visualization.sh          |   2 +-
 .../CNNTextClassification.scala                    |  20 +-
 .../cnntextclassification/DataHelper.scala         |   8 +-
 .../apache}/mxnetexamples/customop/Data.scala      |   8 +-
 .../mxnetexamples/customop/ExampleCustomOp.scala   |  34 +--
 .../customop/ExampleCustomOpWithRtc.scala          |  36 +--
 .../apache}/mxnetexamples/gan/GanMnist.scala       |  22 +-
 .../apache}/mxnetexamples/gan/Module.scala         |  20 +-
 .../apache}/mxnetexamples/gan/Viz.scala            |   4 +-
 .../imclassification/ModelTrain.scala              |   8 +-
 .../imclassification/TrainMnist.scala              |   4 +-
 .../apache}/mxnetexamples/module/MnistMlp.scala    |  10 +-
 .../mxnetexamples/module/SequentialModuleEx.scala  |  10 +-
 .../apache}/mxnetexamples/multitask/Data.scala     |   8 +-
 .../mxnetexamples/multitask/ExampleMultiTask.scala |  20 +-
 .../mxnetexamples/neuralstyle/ModelVgg19.scala     |  12 +-
 .../mxnetexamples/neuralstyle/NeuralStyle.scala    |   6 +-
 .../mxnetexamples/neuralstyle/end2end/Basic.scala  |  12 +-
 .../neuralstyle/end2end/BoostInference.scala       |   6 +-
 .../neuralstyle/end2end/BoostTrain.scala           |  18 +-
 .../neuralstyle/end2end/DataProcessing.scala       |   8 +-
 .../mxnetexamples/neuralstyle/end2end/GenV3.scala  |  10 +-
 .../mxnetexamples/neuralstyle/end2end/GenV4.scala  |  10 +-
 .../neuralstyle/end2end/ModelVgg19.scala           |   8 +-
 .../mxnetexamples/neuralstyle/end2end/Module.scala |  20 +-
 .../mxnetexamples/profiler/ProfilerMatMul.scala    |  12 +-
 .../mxnetexamples/profiler/ProfilerNDArray.scala   |  12 +-
 .../apache}/mxnetexamples/rnn/BucketIo.scala       |   4 +-
 .../apache}/mxnetexamples/rnn/Lstm.scala           |   4 +-
 .../apache}/mxnetexamples/rnn/LstmBucketing.scala  |  12 +-
 .../apache}/mxnetexamples/rnn/RnnModel.scala       |  10 +-
 .../apache}/mxnetexamples/rnn/TestCharRnn.scala    |   4 +-
 .../apache}/mxnetexamples/rnn/TrainCharRnn.scala   |   6 +-
 .../apache}/mxnetexamples/rnn/Utils.scala          |  12 +-
 .../mxnetexamples/visualization/AlexNet.scala      |   4 +-
 .../mxnetexamples/visualization/ExampleVis.scala   |   8 +-
 .../mxnetexamples/visualization/GoogleNet.scala    |   4 +-
 .../mxnetexamples/visualization/Inception_BN.scala |   4 +-
 .../mxnetexamples/visualization/Inception_V3.scala |   4 +-
 .../mxnetexamples/visualization/LeNet.scala        |   4 +-
 .../mxnetexamples/visualization/ResNet_Small.scala |   4 +-
 .../apache}/mxnetexamples/visualization/VGG.scala  |   4 +-
 scala-package/init-native/linux-x86_64/pom.xml     |  10 +-
 scala-package/init-native/osx-x86_64/pom.xml       |  10 +-
 scala-package/init-native/pom.xml                  |   2 +-
 ...pi.cc => org_apache_mxnet_init_native_c_api.cc} |  18 +-
 scala-package/init/pom.xml                         |   2 +-
 .../{ml/dmlc => org/apache}/mxnet/init/Base.scala  |   2 +-
 .../dmlc => org/apache}/mxnet/init/LibInfo.scala   |   4 +-
 scala-package/macros/pom.xml                       |   6 +-
 .../dmlc => org/apache}/mxnet/NDArrayMacro.scala   |   8 +-
 .../dmlc => org/apache}/mxnet/SymbolMacro.scala    |   8 +-
 .../apache}/mxnet/utils/OperatorBuildUtils.scala   |   2 +-
 scala-package/native/linux-x86_64-cpu/pom.xml      |  10 +-
 scala-package/native/linux-x86_64-gpu/pom.xml      |  10 +-
 scala-package/native/osx-x86_64-cpu/pom.xml        |  10 +-
 scala-package/native/pom.xml                       |   2 +-
 .../native/src/main/native/jni_helper_func.h       |  10 +-
 ...e_c_api.cc => org_apache_mxnet_native_c_api.cc} | 248 ++++++++++-----------
 scala-package/pom.xml                              |   6 +-
 scala-package/spark/bin/run-mnist-example.sh       |   2 +-
 scala-package/spark/pom.xml                        |   4 +-
 .../apache}/mxnet/spark/MXNDArray.scala            |   6 +-
 .../dmlc => org/apache}/mxnet/spark/MXNet.scala    |   8 +-
 .../apache}/mxnet/spark/MXNetModel.scala           |   8 +-
 .../apache}/mxnet/spark/MXNetParams.scala          |   4 +-
 .../apache}/mxnet/spark/ParameterServer.scala      |   4 +-
 .../spark/example/ClassificationExample.scala      |   6 +-
 .../apache}/mxnet/spark/io/LabeledPointIter.scala  |   4 +-
 .../mxnet/spark/io/LongLivingDataBatch.scala       |   4 +-
 .../apache}/mxnet/spark/io/PointIter.scala         |   4 +-
 .../apache}/mxnet/spark/transformer/MXNet.scala    |   8 +-
 .../apache}/mxnet/spark/utils/Img2Vector.scala     |   2 +-
 .../apache}/mxnet/spark/utils/Network.scala        |   2 +-
 .../apache}/mxnet/spark/utils/RepIterator.scala    |   2 +-
 182 files changed, 707 insertions(+), 710 deletions(-)

diff --git a/docs/api/scala/index.md b/docs/api/scala/index.md
index ef8a03a..67e1f24 100644
--- a/docs/api/scala/index.md
+++ b/docs/api/scala/index.md
@@ -1,6 +1,6 @@
 # MXNet - Scala API
 
-See the [MXNet Scala API Documentation](http://mxnet.io/api/scala/docs/index.html).
+See the [MXNet Scala API Documentation](http://mxnet.incubator.apache.org/api/scala/docs/index.html).
 
 MXNet supports the Scala programming language. The MXNet Scala package brings flexible and efficient GPU
 computing and state-of-art deep learning to Scala. It enables you to write seamless tensor/matrix computation with multiple GPUs in Scala. It also lets you construct and customize the state-of-art deep learning models in Scala,
@@ -9,20 +9,20 @@ computing and state-of-art deep learning to Scala. It enables you to write seaml
 You can perform tensor or matrix computation in pure Scala:
 
 ```scala
-   scala> import ml.dmlc.mxnet._
-   import ml.dmlc.mxnet._
+   scala> import org.apache.mxnet._
+   import org.apache.mxnet._
 
    scala> val arr = NDArray.ones(2, 3)
-   arr: ml.dmlc.mxnet.NDArray = ml.dmlc.mxnet.NDArray@f5e74790
+   arr: org.apache.mxnet.NDArray = org.apache.mxnet.NDArray@f5e74790
 
    scala> arr.shape
-   res0: ml.dmlc.mxnet.Shape = (2,3)
+   res0: org.apache.mxnet.Shape = (2,3)
 
    scala> (arr * 2).toArray
    res2: Array[Float] = Array(2.0, 2.0, 2.0, 2.0, 2.0, 2.0)
 
    scala> (arr * 2).shape
-   res3: ml.dmlc.mxnet.Shape = (2,3)
+   res3: org.apache.mxnet.Shape = (2,3)
 ```
 
  ## Scala API Reference
@@ -36,7 +36,7 @@ You can perform tensor or matrix computation in pure Scala:
 
 ## Resources
 
-* [MXNet Scala API Documentation](http://mxnet.io/api/scala/docs/index.html)
-* [Handwritten Digit Classification in Scala](http://mxnet.io/tutorials/scala/mnist.html)
-* [Neural Style in Scala on MXNet](https://github.com/dmlc/mxnet/blob/master/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/NeuralStyle.scala)
-* [More Scala Examples](https://github.com/dmlc/mxnet/tree/master/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples)
+* [MXNet Scala API Documentation](http://mxnet.incubator.apache.org/api/scala/docs/index.html)
+* [Handwritten Digit Classification in Scala](http://mxnet.incubator.apache.org/tutorials/scala/mnist.html)
+* [Neural Style in Scala on MXNet](https://github.com/apache/incubator-mxnet/blob/master/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/NeuralStyle.scala)
+* [More Scala Examples](https://github.com/apache/incubator-mxnet/tree/master/scala-package/examples/src/main/scala/org/apache/mxnetexamples)
diff --git a/docs/api/scala/io.md b/docs/api/scala/io.md
index 316a1ee..ff212d1 100644
--- a/docs/api/scala/io.md
+++ b/docs/api/scala/io.md
@@ -8,7 +8,7 @@ Topics:
 * [Data Iterator Parameters](#parameters-for-data-iterator) clarifies the different usages for dataiter parameters.
 * [Create a Data Iterator](#create-a-data-iterator) introduces how to create a data iterator in MXNet for Scala.
 * [How to Get Data](#how-to-get-data) introduces the data resource and data preparation tools.
-* [IO API Reference](http://mxnet.io/api/scala/docs/index.html#ml.dmlc.mxnet.IO$) explains the IO API.
+* [IO API Reference](http://mxnet.incubator.apache.org/api/scala/docs/index.html#org.apache.mxnet.IO$) explains the IO API.
 
 
 ## Data Iterator Parameters
@@ -83,7 +83,7 @@ First, explicitly specify the kind of data (MNIST, ImageRecord, etc.) to fetch.
 ## How to Get Data
 
 
-We provide [scripts](https://github.com/dmlc/mxnet/tree/master/scala-package/core/scripts) to download MNIST data and CIFAR10 ImageRecord data. If you want to create your own dataset, we recommend using the Image RecordIO data format.
+We provide [scripts](https://github.com/apache/incubator-mxnet/tree/master/scala-package/core/scripts) to download MNIST data and CIFAR10 ImageRecord data. If you want to create your own dataset, we recommend using the Image RecordIO data format.
 
 ## Create a Dataset Using RecordIO
 
@@ -93,7 +93,7 @@ RecordIO implements a file format for a sequence of records. We recommend storin
 * Packing data together allows continuous reading on the disk.
 * RecordIO has a simple way to partition, simplifying distributed setting. We provide an example later.
 
-We provide the [im2rec tool](https://github.com/dmlc/mxnet/blob/master/tools/im2rec.cc) so you can create an Image RecordIO dataset by yourself. The following walkthrough shows you how.
+We provide the [im2rec tool](https://github.com/apache/incubator-mxnet/blob/master/tools/im2rec.cc) so you can create an Image RecordIO dataset by yourself. The following walkthrough shows you how.
 
 ### Prerequisites
 Download the data. You don't need to resize the images manually. You can use `im2rec` to resize them automatically. For details, see "Extension: Using Multiple Labels for a Single Image," later in this topic.
diff --git a/docs/api/scala/kvstore.md b/docs/api/scala/kvstore.md
index 70b317a..2157176 100644
--- a/docs/api/scala/kvstore.md
+++ b/docs/api/scala/kvstore.md
@@ -3,7 +3,7 @@
 Topics:
 * [Basic Push and Pull](#basic-push-and-pull)
 * [List Key-Value Pairs](#list-key-value-pairs)
-* [API Reference](http://mxnet.io/api/scala/docs/index.html#ml.dmlc.mxnet.KVStore)
+* [API Reference](http://mxnet.incubator.apache.org/api/scala/docs/index.html#org.apache.mxnet.KVStore)
 
 
 ## Basic Push and Pull
@@ -103,6 +103,3 @@ the interface for generating a list of key-value pairs. For a single device, use
     scala> b(1).toArray
     Array[Float] = Array(3.0, 3.0, 3.0, 3.0, 3.0, 3.0)
 ```
-
-## Next Steps
-* [Scala Tutorials](http://mxnet.io/tutorials/index.html#Python-Tutorials)
diff --git a/docs/api/scala/model.md b/docs/api/scala/model.md
index b5f59e2..ed452cc 100644
--- a/docs/api/scala/model.md
+++ b/docs/api/scala/model.md
@@ -10,7 +10,7 @@ Topics:
 * [Save the Model](#save-the-model)
 * [Periodic Checkpoint](#periodic-checkpointing)
 * [Multiple Devices](#use-multiple-devices)
-* [Model API Reference](#http://mxnet.io/api/scala/docs/index.html#ml.dmlc.mxnet.Model)
+* [Model API Reference](#http://mxnet.incubator.apache.org/api/scala/docs/index.html#org.apache.mxnet.Model)
 
 ## Train the Model
 
@@ -48,7 +48,7 @@ You can also use the `scikit-learn-style` construct and `fit` function to create
 
   model.fit(trainData = train)
 ```
-For more information, see [API Reference](http://mxnet.io/api/scala/docs/index.html).
+For more information, see [API Reference](http://mxnet.incubator.apache.org/api/scala/docs/index.html).
 
 ## Save the Model
 
diff --git a/docs/api/scala/module.md b/docs/api/scala/module.md
index 8e9273f..daf2d97 100644
--- a/docs/api/scala/module.md
+++ b/docs/api/scala/module.md
@@ -7,8 +7,8 @@ A subclass of modules might have extra interface functions. This topic provides
 To construct a module, refer to the constructors for the module class. For example, the `Module` class accepts a `Symbol` as input:
 
 ```scala
-    import ml.dmlc.mxnet._
-    import ml.dmlc.mxnet.module.{FitParams, Module}
+    import org.apache.mxnet._
+    import org.apache.mxnet.module.{FitParams, Module}
 
     // construct a simple MLP
     val data = Symbol.Variable("data")
@@ -40,7 +40,7 @@ Now you can compute with the module using functions like `forward()`, `backward(
 Modules provide high-level APIs for training, predicting, and evaluating. To fit a module, call the `fit()` function with some `DataIter`s:
 
 ```scala
-    import ml.dmlc.mxnet.optimizer.SGD
+    import org.apache.mxnet.optimizer.SGD
     val mod = new Module(softmax)
 
     mod.fit(train_dataiter, evalData = scala.Option(eval_dataiter), \
@@ -48,13 +48,13 @@ Modules provide high-level APIs for training, predicting, and evaluating. To fit
     .setOptimizer(new SGD(learningRate = 0.1f, momentum = 0.9f, wd = 0.0001f)))
 ```
 
-The interface is very similar to the old `FeedForward` class. You can pass in batch-end callbacks using `setBatchEndCallback` and epoch-end callbacks using `setEpochEndCallback`. You can also set parameters using methods like `setOptimizer` and `setEvalMetric`. To learn more about the `FitParams()`, see the [API page](http://mxnet.io/api/scala/docs/index.html#ml.dmlc.mxnet.module.FitParams). To predict with a module, call `predict()` with a `DataIter`:
+The interface is very similar to the old `FeedForward` class. You can pass in batch-end callbacks using `setBatchEndCallback` and epoch-end callbacks using `setEpochEndCallback`. You can also set parameters using methods like `setOptimizer` and `setEvalMetric`. To learn more about the `FitParams()`, see the [API page](http://mxnet.io/api/scala/docs/index.html#org.apache.mxnet.module.FitParams). To predict with a module, call `predict()` with a `DataIter`:
 
 ```scala
     mod.predict(val_dataiter)
 ```
 
-The module collects and returns all of the prediction results. For more details about the format of the return values, see the documentation for the [`predict()` function](http://mxnet.io/api/scala/docs/index.html#ml.dmlc.mxnet.module.BaseModule).
+The module collects and returns all of the prediction results. For more details about the format of the return values, see the documentation for the [`predict()` function](http://mxnet.incubator.apache.org/api/scala/docs/index.html#org.apache.mxnet.module.BaseModule).
 
 When prediction results might be too large to fit in memory, use the `predictEveryBatch` API:
 
diff --git a/docs/api/scala/ndarray.md b/docs/api/scala/ndarray.md
index 981e01d..3d4bc37 100644
--- a/docs/api/scala/ndarray.md
+++ b/docs/api/scala/ndarray.md
@@ -7,14 +7,14 @@ Topics:
 
 * [Create NDArray](#create-ndarray)
 * [NDArray Operations](#ndarray-operations)
-* [NDArray API Reference](http://mxnet.io/api/scala/docs/index.html#ml.dmlc.mxnet.NDArray)
+* [NDArray API Reference](http://mxnet.incubator.apache.org/api/scala/docs/index.html#org.apache.mxnet.NDArray)
 
 ## Create NDArray
 
 Create `mxnet.ndarray` as follows:
 
 ```scala
-    scala> import ml.dmlc.mxnet._
+    scala> import org.apache.mxnet._
     scala> // all-zero array of dimension 100x50
     scala> val a = NDArray.zeros(100, 50)
     scala> // all-one array of dimension 256x32x128x1
@@ -30,10 +30,10 @@ We provide some basic ndarray operations, like arithmetic and slice operations.
 ### Arithmetic Operations
 
 ```scala
-    scala> import ml.dmlc.mxnet._
+    scala> import org.apache.mxnet._
     scala> val a = NDArray.zeros(100, 50)
     scala> a.shape
-    ml.dmlc.mxnet.Shape = (100,50)
+    org.apache.mxnet.Shape = (100,50)
     scala> val b = NDArray.ones(100, 50)
     scala> // c and d will be calculated in parallel here!
     scala> val c = a + b
@@ -45,7 +45,7 @@ We provide some basic ndarray operations, like arithmetic and slice operations.
 ### Multiplication/Division Operations
 
 ```scala
-    scala> import ml.dmlc.mxnet._
+    scala> import org.apache.mxnet._
     //Multiplication
     scala> val ndones = NDArray.ones(2, 1)
     scala> val ndtwos = ndones * 2
@@ -79,7 +79,7 @@ We provide some basic ndarray operations, like arithmetic and slice operations.
 ### Slice Operations
 
 ```scala
-    scala> import ml.dmlc.mxnet._
+    scala> import org.apache.mxnet._
     scala> val a = NDArray.array(Array(1f, 2f, 3f, 4f, 5f, 6f), shape = Shape(3, 2))
     scala> val a1 = a.slice(1)   
     scala> assert(a1.shape === Shape(1, 2))
@@ -93,12 +93,12 @@ We provide some basic ndarray operations, like arithmetic and slice operations.
 ### Dot Product
 
 ```scala
-    scala> import ml.dmlc.mxnet._
+    scala> import org.apache.mxnet._
     scala> val arr1 = NDArray.array(Array(1f, 2f), shape = Shape(1, 2))
     scala> val arr2 = NDArray.array(Array(3f, 4f), shape = Shape(2, 1))   
     scala> val res = NDArray.dot(arr1, arr2)
     scala> res.shape
-    ml.dmlc.mxnet.Shape = (1,1)
+    org.apache.mxnet.Shape = (1,1)
     scala> res.toArray
     Array[Float] = Array(11.0)
 ```
@@ -108,7 +108,7 @@ We provide some basic ndarray operations, like arithmetic and slice operations.
 You can use MXNet functions to save and load a list or dictionary of NDArrays from file systems, as follows:
 
 ```scala
-    scala> import ml.dmlc.mxnet._
+    scala> import org.apache.mxnet._
     scala> val a = NDArray.zeros(100, 200)
     scala> val b = NDArray.zeros(100, 200)
     scala> // save list of NDArrays
@@ -128,20 +128,20 @@ The good thing about using the `save` and `load` interface is that you can use t
 Device information is stored in the `mxnet.Context` structure. When creating NDArray in MXNet, you can use the context argument (the default is the CPU context) to create arrays on specific devices as follows:
 
 ```scala
-    scala> import ml.dmlc.mxnet._
+    scala> import org.apache.mxnet._
     scala> val cpu_a = NDArray.zeros(100, 200)
     scala> cpu_a.context
-    ml.dmlc.mxnet.Context = cpu(0)
+    org.apache.mxnet.Context = cpu(0)
     scala> val ctx = Context.gpu(0)
     scala> val gpu_b = NDArray.zeros(Shape(100, 200), ctx)
     scala> gpu_b.context
-    ml.dmlc.mxnet.Context = gpu(0)
+    org.apache.mxnet.Context = gpu(0)
 ```
 
 Currently, we *do not* allow operations among arrays from different contexts. To manually enable this, use the `copyto` member function to copy the content to different devices, and continue computation:
 
 ```scala
-    scala> import ml.dmlc.mxnet._
+    scala> import org.apache.mxnet._
     scala> val x = NDArray.zeros(100, 200)
     scala> val ctx = Context.gpu(0)
     scala> val y = NDArray.zeros(Shape(100, 200), ctx)
diff --git a/docs/api/scala/symbol.md b/docs/api/scala/symbol.md
index 33afc66..4616a65 100644
--- a/docs/api/scala/symbol.md
+++ b/docs/api/scala/symbol.md
@@ -6,9 +6,9 @@ Topics:
 * [Symbol Attributes](#symbol-attributes) describes how to attach attributes to symbols.
 * [Serialization](#serialization) explains how to save and load symbols.
 * [Executing Symbols](#executing-symbols) explains how to evaluate the symbols with data.
-* [Execution API Reference](http://mxnet.io/api/scala/docs/index.html#ml.dmlc.mxnet.Executor) documents the execution APIs.
+* [Execution API Reference](http://mxnet.incubator.apache.org/api/scala/docs/index.html#org.apache.mxnet.Executor) documents the execution APIs.
 * [Multiple Outputs](#multiple-outputs) explains how to configure multiple outputs.
-* [Symbol Creation API Reference](http://mxnet.io/api/scala/docs/index.html#ml.dmlc.mxnet.Symbol) documents functions.
+* [Symbol Creation API Reference](http://mxnet.incubator.apache.org/api/scala/docs/index.html#org.apache.mxnet.Symbol) documents functions.
 
 We also highly encourage you to read [Symbolic Configuration and Execution in Pictures](symbol_in_pictures.md).
 
@@ -20,14 +20,14 @@ You can configure the graphs either at the level of neural network layer operati
 The following example configures a two-layer neural network.
 
 ```scala
-    scala> import ml.dmlc.mxnet._
+    scala> import org.apache.mxnet._
     scala> val data = Symbol.Variable("data")
     scala> val fc1 = Symbol.FullyConnected(name = "fc1")()(Map("data" -> data, "num_hidden" -> 128))
     scala> val act1 = Symbol.Activation(name = "relu1")()(Map("data" -> fc1, "act_type" -> "relu"))
     scala> val fc2 = Symbol.FullyConnected(name = "fc2")()(Map("data" -> act1, "num_hidden" -> 64))
     scala> val net = Symbol.SoftmaxOutput(name = "out")()(Map("data" -> fc2))
     scala> :type net
-    ml.dmlc.mxnet.Symbol
+    org.apache.mxnet.Symbol
 ```
 
 The basic arithmetic operators (plus, minus, div, multiplication) are overloaded for
@@ -36,7 +36,7 @@ The basic arithmetic operators (plus, minus, div, multiplication) are overloaded
 The following example creates a computation graph that adds two inputs together.
 
 ```scala
-    scala> import ml.dmlc.mxnet._
+    scala> import org.apache.mxnet._
     scala> val a = Symbol.Variable("a")
     scala> val b = Symbol.Variable("b")
     scala> val c = a + b
@@ -79,12 +79,12 @@ To attach attributes, you can use ```AttrScope```. ```AttrScope``` automatically
 There are two ways to save and load the symbols. You can use the `mxnet.Symbol.save` and `mxnet.Symbol.load` functions to serialize the ```Symbol``` objects.
 The advantage of using `save` and `load` functions is that it is language agnostic and cloud friendly.
 The symbol is saved in JSON format. You can also get a JSON string directly using `mxnet.Symbol.toJson`.
-Refer to [API documentation](http://mxnet.io/api/scala/docs/index.html#ml.dmlc.mxnet.Symbol) for more details.
+Refer to [API documentation](http://mxnet.incubator.apache.org/api/scala/docs/index.html#org.apache.mxnet.Symbol) for more details.
 
 The following example shows how to save a symbol to an S3 bucket, load it back, and compare two symbols using a JSON string.
 
 ```scala
-    scala> import ml.dmlc.mxnet._
+    scala> import org.apache.mxnet._
     scala> val a = Symbol.Variable("a")
     scala> val b = Symbol.Variable("b")
     scala> val c = a + b
@@ -112,7 +112,7 @@ which is typically constructed by calling the [`simpleBind(<parameters>)`] metho
 To group the symbols together, use the [mxnet.symbol.Group](#mxnet.symbol.Group) function.
 
 ```scala
-    scala> import ml.dmlc.mxnet._
+    scala> import org.apache.mxnet._
     scala> val data = Symbol.Variable("data")
     scala> val fc1 = Symbol.FullyConnected(name = "fc1")()(Map("data" -> data, "num_hidden" -> 128))
     scala> val act1 = Symbol.Activation(name = "relu1")()(Map("data" -> fc1, "act_type" -> "relu"))
diff --git a/docs/mxdoc.py b/docs/mxdoc.py
index caf1356..705fc95 100644
--- a/docs/mxdoc.py
+++ b/docs/mxdoc.py
@@ -80,13 +80,13 @@ def build_r_docs(app):
 
 def build_scala_docs(app):
     """build scala doc and then move the outdir"""
-    scala_path = app.builder.srcdir + '/../scala-package/core/src/main/scala/ml/dmlc/mxnet'
+    scala_path = app.builder.srcdir + '/../scala-package/core/src/main/scala/org/apache/mxnet'
     # scaldoc fails on some apis, so exit 0 to pass the check
     _run_cmd('cd ' + scala_path + '; scaladoc `find . | grep .*scala`; exit 0')
     dest_path = app.builder.outdir + '/api/scala/docs'
     _run_cmd('rm -rf ' + dest_path)
     _run_cmd('mkdir -p ' + dest_path)
-    scaladocs = ['index', 'index.html', 'ml', 'lib', 'index.js', 'package.html']
+    scaladocs = ['index', 'index.html', 'org', 'lib', 'index.js', 'package.html']
     for doc_file in scaladocs:
         _run_cmd('cd ' + scala_path + ' && mv -f ' + doc_file + ' ' + dest_path)
 
diff --git a/docs/tutorials/scala/char_lstm.md b/docs/tutorials/scala/char_lstm.md
index 466d827..2854a6d 100644
--- a/docs/tutorials/scala/char_lstm.md
+++ b/docs/tutorials/scala/char_lstm.md
@@ -16,10 +16,10 @@ There are three ways to use this tutorial:
 
 2) Reuse the code by making changes to relevant parameters and running it from command line.
 
-3) [Run the source code directly](https://github.com/dmlc/mxnet/tree/master/scala-package/examples/src/main/scala/ml/dmlc/mxnet/examples/rnn) by running the [provided scripts](https://github.com/dmlc/mxnet/tree/master/scala-package/examples/scripts/rnn).
+3) [Run the source code directly](https://github.com/apache/incubator-mxnet/tree/master/scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn) by running the [provided scripts](https://github.com/apache/incubator-mxnet/tree/master/scala-package/examples/scripts/rnn).
 
 To run the scripts:
-- Build and train the model with the [run_train_charrnn.sh script](https://github.com/dmlc/mxnet/blob/master/scala-package/examples/scripts/rnn/run_train_charrnn.sh). Edit the script as follows:
+- Build and train the model with the [run_train_charrnn.sh script](https://github.com/apache/incubator-mxnet/tree/master/scala-package/examples/scripts/rnn/run_train_charrnn.sh). Edit the script as follows:
 
 Edit the CLASS_PATH variable in the script to include your operating system-specific folder (e.g., linux-x86_64-cpu/linux-x86_64-gpu/osx-x86_64-cpu) in the path. Run the script with the following command:
 
@@ -179,13 +179,13 @@ Now, create a multi-layer LSTM model.
 To create the model:
 
 1) Load the helper files (`Lstm.scala`, `BucketIo.scala` and `RnnModel.scala`).
-`Lstm.scala` contains the definition of the LSTM cell. `BucketIo.scala` creates a sentence iterator. `RnnModel.scala` is used for model inference. The helper files are available on the [MXNet site](https://github.com/dmlc/mxnet/tree/master/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/rnn).
+`Lstm.scala` contains the definition of the LSTM cell. `BucketIo.scala` creates a sentence iterator. `RnnModel.scala` is used for model inference. The helper files are available on the [MXNet site](https://github.com/apache/incubator-mxnet/tree/master/scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn).
 To load them, at the Scala command prompt type:
 
     ```scala
-        scala> :load ../../../scala-package/examples/src/main/scala/ml/dmlc/mxnet/examples/rnn/Lstm.scala
-        scala> :load ../../../scala-package/examples/src/main/scala/ml/dmlc/mxnet/examples/rnn/BucketIo.scala
-        scala> :load ../../../scala-package/examples/src/main/scala/ml/dmlc/mxnet/examples/rnn/RnnModel.scala
+        scala> :load ../../../scala-package/examples/src/main/scala/org/apache/mxnet/examples/rnn/Lstm.scala
+        scala> :load ../../../scala-package/examples/src/main/scala/org/apache/mxnet/examples/rnn/BucketIo.scala
+        scala> :load ../../../scala-package/examples/src/main/scala/org/apache/mxnet/examples/rnn/RnnModel.scala
     ```
 
 2) Set the LSTM hyperparameters as follows:
@@ -223,11 +223,11 @@ To load them, at the Scala command prompt type:
                         numHidden = numHidden, numEmbed = numEmbed,
                         numLabel = vocab.size + 1, dropout = 0.2f)
           }
-        symGen: (seqLen: Int)ml.dmlc.mxnet.Symbol
+        symGen: (seqLen: Int)org.apache.mxnet.Symbol
 
         scala> // create the network symbol
         scala> val symbol = symGen(buckets(0))
-        symbol: ml.dmlc.mxnet.Symbol = ml.dmlc.mxnet.Symbol@3a589eed
+        symbol: org.apache.mxnet.Symbol = org.apache.mxnet.Symbol@3a589eed
 
     ```      
 
@@ -261,17 +261,17 @@ Note: The BucketSentenceIter data iterator supports various length examples; how
 
     ```
 
-5) You can set more than 100 epochs, but for this tutorial, specify 75 epochs. Each epoch can take as long as 4 minutes on a GPU. In this tutorial, you will use the [ADAM optimizer](http://mxnet.io/api/scala/docs/index.html#ml.dmlc.mxnet.optimizer.Adam):
+5) You can set more than 100 epochs, but for this tutorial, specify 75 epochs. Each epoch can take as long as 4 minutes on a GPU. In this tutorial, you will use the [ADAM optimizer](http://mxnet.io/api/scala/docs/index.html#org.apache.mxnet.optimizer.Adam):
 
     ```scala
-        scala> import ml.dmlc.mxnet._
-        import ml.dmlc.mxnet._
+        scala> import org.apache.mxnet._
+        import org.apache.mxnet._
 
-        scala> import ml.dmlc.mxnet.Callback.Speedometer
-        import ml.dmlc.mxnet.Callback.Speedometer
+        scala> import org.apache.mxnet.Callback.Speedometer
+        import org.apache.mxnet.Callback.Speedometer
 
-        scala> import ml.dmlc.mxnet.optimizer.Adam
-        import ml.dmlc.mxnet.optimizer.Adam
+        scala> import org.apache.mxnet.optimizer.Adam
+        import org.apache.mxnet.optimizer.Adam
 
         scala> // and we will see result by training 75 epochs
         scala> val numEpoch = 75
@@ -309,7 +309,7 @@ Note: The BucketSentenceIter data iterator supports various length examples; how
                 loss / size
                 }
 
-        perplexity: (label: ml.dmlc.mxnet.NDArray, pred: ml.dmlc.mxnet.NDArray)Float
+        perplexity: (label: org.apache.mxnet.NDArray, pred: org.apache.mxnet.NDArray)Float
 
         scala> def doCheckpoint(prefix: String): EpochEndCallback = new EpochEndCallback {
                     override def invoke(epoch: Int, symbol: Symbol,
@@ -319,7 +319,7 @@ Note: The BucketSentenceIter data iterator supports various length examples; how
                     }
                 }
 
-        doCheckpoint: (prefix: String)ml.dmlc.mxnet.EpochEndCallback
+        doCheckpoint: (prefix: String)org.apache.mxnet.EpochEndCallback
 
     ```
 
@@ -328,11 +328,11 @@ Note: The BucketSentenceIter data iterator supports various length examples; how
     ```scala
         scala> val initializer = new Xavier(factorType = "in", magnitude = 2.34f)
 
-        initializer: ml.dmlc.mxnet.Xavier = ml.dmlc.mxnet.Xavier@54e8f10a
+        initializer: org.apache.mxnet.Xavier = org.apache.mxnet.Xavier@54e8f10a
 
     ```
 
-8) Now, you have implemented all the supporting infrastructures for the char-lstm model. To train the model, use the standard [MXNet high-level API](http://mxnet.io/api/scala/docs/index.html#ml.dmlc.mxnet.FeedForward). You can train the model on a single GPU or CPU from multiple GPUs or CPUs by changing ```scala .setContext(Array(Context.gpu(0),Context.gpu(1),Context.gpu(2),Context.gpu(3)))``` to ```scala .setContext(Array(Context.gpu(0)))```:
+8) Now, you have implemented all the supporting infrastructures for the char-lstm model. To train the model, use the standard [MXNet high-level API](http://mxnet.io/api/scala/docs/index.html#org.apache.mxnet.FeedForward). You can train the model on a single GPU or CPU from multiple GPUs or CPUs by changing ```scala .setContext(Array(Context.gpu(0),Context.gpu(1),Context.gpu(2),Context.gpu(3)))``` to ```scala .setContext(Array(Context.gpu(0)))```:
 
     ```scala
         scala> val model = FeedForward.newBuilder(symbol)
@@ -346,7 +346,7 @@ Note: The BucketSentenceIter data iterator supports various length examples; how
                 .setEpochEndCallback(doCheckpoint("obama"))
                 .build()
 
-        model: ml.dmlc.mxnet.FeedForward = ml.dmlc.mxnet.FeedForward@4926f6c7
+        model: org.apache.mxnet.FeedForward = org.apache.mxnet.FeedForward@4926f6c7
     ```
 
 Now, you have an LSTM model and you've trained it. Use this model to create the inference.
@@ -388,7 +388,7 @@ To build the inference model, define the following utility functions that help M
               arr.set(tmp)
             }
 
-      makeInput: (char: Char, vocab: Map[String,Int], arr: ml.dmlc.mxnet.NDArray)Unit
+      makeInput: (char: Char, vocab: Map[String,Int], arr: org.apache.mxnet.NDArray)Unit
 
       scala> // helper function for random sample
       scala> def cdf(weights: Array[Float]): Array[Float] = {
@@ -469,7 +469,7 @@ To build the inference model, define the following utility functions that help M
         seqLength: Int = 1200
 
         scala> val inputNdarray = NDArray.zeros(1)
-        inputNdarray: ml.dmlc.mxnet.NDArray = ml.dmlc.mxnet.NDArray@9c231a24
+        inputNdarray: org.apache.mxnet.NDArray = org.apache.mxnet.NDArray@9c231a24
 
         scala> val revertVocab = makeRevertVocab(vocab)
 
diff --git a/docs/tutorials/scala/mnist.md b/docs/tutorials/scala/mnist.md
index ad55ee4..9d5280b 100644
--- a/docs/tutorials/scala/mnist.md
+++ b/docs/tutorials/scala/mnist.md
@@ -15,8 +15,8 @@ To complete this tutorial, we need:
 First, define the neural network's architecture using the Symbol API:
 
 ```scala
-import ml.dmlc.mxnet._
-import ml.dmlc.mxnet.optimizer.SGD
+import org.apache.mxnet._
+import org.apache.mxnet.optimizer.SGD
 
 // model definition
 val data = Symbol.Variable("data")
diff --git a/docs/tutorials/scala/mxnet_scala_on_intellij.md b/docs/tutorials/scala/mxnet_scala_on_intellij.md
index eb667e9..aa7f67c 100644
--- a/docs/tutorials/scala/mxnet_scala_on_intellij.md
+++ b/docs/tutorials/scala/mxnet_scala_on_intellij.md
@@ -25,7 +25,7 @@ To use this tutorial, you need:
 ```HTML
     <dependencies>
       <dependency>
-        <groupId>ml.dmlc.mxnet</groupId>
+        <groupId>org.apache.mxnet</groupId>
         <artifactId>mxnet-full_${scala.binary.version}-${platform}</artifactId>
         <version>0.1.1</version>
         <scope>system</scope>
diff --git a/scala-package/README.md b/scala-package/README.md
index 89af249..35fb9d9 100644
--- a/scala-package/README.md
+++ b/scala-package/README.md
@@ -23,7 +23,7 @@ Use the following dependency in maven, change the artifactId according to your o
 
 ```HTML
 <dependency>
-  <groupId>ml.dmlc.mxnet</groupId>
+  <groupId>org.apache.mxnet</groupId>
   <artifactId>mxnet-full_2.10-linux-x86_64-gpu</artifactId>
   <version>0.1.1</version>
 </dependency>
@@ -33,7 +33,7 @@ You can also use `mxnet-core_2.10-0.1.1.jar` and put the compiled native library
 
 ```HTML
 <dependency>
-  <groupId>ml.dmlc.mxnet</groupId>
+  <groupId>org.apache.mxnet</groupId>
   <artifactId>mxnet-core_2.10</artifactId>
   <version>0.1.1</version>
 </dependency>
@@ -45,7 +45,7 @@ Refer to the next section for how to build it from the very source.
 Build
 ------------
 
-Checkout the [Installation Guide](http://mxnet.io/get_started/setup.html) contains instructions to install mxnet.
+Checkout the [Installation Guide](http://mxnet.incubator.apache.org/install/index.html) contains instructions to install mxnet.
 Then you can compile the Scala Package by
 
 ```bash
@@ -61,7 +61,7 @@ make scalatest
 Or run a subset of unit tests by, e.g.,
 
 ```bash
-make SCALA_TEST_ARGS=-Dsuites=ml.dmlc.mxnet.NDArraySuite scalatest
+make SCALA_TEST_ARGS=-Dsuites=org.apache.mxnet.NDArraySuite scalatest
 ```
 
 If everything goes well, you will find jars for `assembly`, `core` and `example` modules.
@@ -72,7 +72,7 @@ Once you've downloaded and unpacked MNIST dataset to `./data/`, run the training
 ```bash
 java -Xmx4G -cp \
   scala-package/assembly/{your-architecture}/target/*:scala-package/examples/target/*:scala-package/examples/target/classes/lib/* \
-  ml.dmlc.mxnet.examples.imclassification.TrainMnist \
+  org.apache.mxnet.examples.imclassification.TrainMnist \
   --data-dir=./data/ \
   --num-epochs=10 \
   --network=mlp \
@@ -80,13 +80,13 @@ java -Xmx4G -cp \
 ```
 
 If you've compiled with `USE_DIST_KVSTORE` enabled, the python tools in `mxnet/tracker` can be used to launch distributed training.
-The following command runs the above example using 2 worker nodes (and 2 server nodes) in local. Refer to [Distributed Training](http://mxnet.io/how_to/multi_devices.html) for more details.
+The following command runs the above example using 2 worker nodes (and 2 server nodes) in local. Refer to [Distributed Training](http://mxnet.incubator.apache.org/how_to/multi_devices.html) for more details.
 
 ```bash
 tracker/dmlc_local.py -n 2 -s 2 \
   java -Xmx4G -cp \
   scala-package/assembly/{your-architecture}/target/*:scala-package/examples/target/*:scala-package/examples/target/classes/lib/* \
-  ml.dmlc.mxnet.examples.imclassification.TrainMnist \
+  org.apache.mxnet.examples.imclassification.TrainMnist \
   --data-dir=./data/ \
   --num-epochs=10 \
   --network=mlp \
@@ -98,11 +98,11 @@ Change the arguments and have fun!
 
 Usage
 -------
-Here is a Scala example of what training a simple 3-layer multilayer perceptron on MNIST looks like. You can download the MNIST dataset using [get_mnist_data script](https://github.com/dmlc/mxnet/blob/master/scala-package/core/scripts/get_mnist_data.sh).
+Here is a Scala example of what training a simple 3-layer multilayer perceptron on MNIST looks like. You can download the MNIST dataset using [get_mnist_data script](https://github.com/apache/incubator-mxnet/blob/master/scala-package/core/scripts/get_mnist_data.sh).
 
 ```scala
-import ml.dmlc.mxnet._
-import ml.dmlc.mxnet.optimizer.SGD
+import org.apache.mxnet._
+import org.apache.mxnet.optimizer.SGD
 
 // model definition
 val data = Symbol.Variable("data")
@@ -190,4 +190,4 @@ Release
 
 License
 -------
-MXNet Scala Package is licensed under [Apache-2](https://github.com/dmlc/mxnet/blob/master/scala-package/LICENSE) license.
+MXNet Scala Package is licensed under [Apache-2](https://github.com/apache/incubator-mxnet/blob/master/scala-package/LICENSE) license.
diff --git a/scala-package/assembly/linux-x86_64-cpu/pom.xml b/scala-package/assembly/linux-x86_64-cpu/pom.xml
index 75f2d2c..62d7fdb 100644
--- a/scala-package/assembly/linux-x86_64-cpu/pom.xml
+++ b/scala-package/assembly/linux-x86_64-cpu/pom.xml
@@ -4,7 +4,7 @@
          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>
-    <groupId>ml.dmlc.mxnet</groupId>
+    <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-full-parent_2.11</artifactId>
     <version>1.0.1-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
@@ -16,12 +16,12 @@
 
   <dependencies>
     <dependency>
-      <groupId>ml.dmlc.mxnet</groupId>
+      <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-core_${scala.binary.version}</artifactId>
       <version>1.0.1-SNAPSHOT</version>
     </dependency>
     <dependency>
-      <groupId>ml.dmlc.mxnet</groupId>
+      <groupId>org.apache.mxnet</groupId>
       <artifactId>libmxnet-scala-linux-x86_64-cpu</artifactId>
       <version>1.0.1-SNAPSHOT</version>
       <type>so</type>
diff --git a/scala-package/assembly/linux-x86_64-cpu/src/main/assembly/assembly.xml b/scala-package/assembly/linux-x86_64-cpu/src/main/assembly/assembly.xml
index 97e34c8..a574f8a 100644
--- a/scala-package/assembly/linux-x86_64-cpu/src/main/assembly/assembly.xml
+++ b/scala-package/assembly/linux-x86_64-cpu/src/main/assembly/assembly.xml
@@ -21,7 +21,7 @@
       <useProjectArtifact>false</useProjectArtifact>
       <useStrictFiltering>false</useStrictFiltering>
       <includes>
-        <include>ml.dmlc.mxnet:libmxnet-scala-linux-x86_64-cpu:so</include>
+        <include>org.apache.mxnet:libmxnet-scala-linux-x86_64-cpu:so</include>
       </includes>
     </dependencySet>
   </dependencySets>
diff --git a/scala-package/assembly/linux-x86_64-gpu/pom.xml b/scala-package/assembly/linux-x86_64-gpu/pom.xml
index 7c7162d..5a91815 100644
--- a/scala-package/assembly/linux-x86_64-gpu/pom.xml
+++ b/scala-package/assembly/linux-x86_64-gpu/pom.xml
@@ -4,7 +4,7 @@
          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>
-    <groupId>ml.dmlc.mxnet</groupId>
+    <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-full-parent_2.11</artifactId>
     <version>1.0.1-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
@@ -16,12 +16,12 @@
 
   <dependencies>
     <dependency>
-      <groupId>ml.dmlc.mxnet</groupId>
+      <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-core_${scala.binary.version}</artifactId>
       <version>1.0.1-SNAPSHOT</version>
     </dependency>
     <dependency>
-      <groupId>ml.dmlc.mxnet</groupId>
+      <groupId>org.apache.mxnet</groupId>
       <artifactId>libmxnet-scala-linux-x86_64-gpu</artifactId>
       <version>1.0.1-SNAPSHOT</version>
       <type>so</type>
diff --git a/scala-package/assembly/linux-x86_64-gpu/src/main/assembly/assembly.xml b/scala-package/assembly/linux-x86_64-gpu/src/main/assembly/assembly.xml
index ba5030c..3a064bf 100644
--- a/scala-package/assembly/linux-x86_64-gpu/src/main/assembly/assembly.xml
+++ b/scala-package/assembly/linux-x86_64-gpu/src/main/assembly/assembly.xml
@@ -21,7 +21,7 @@
       <useProjectArtifact>false</useProjectArtifact>
       <useStrictFiltering>false</useStrictFiltering>
       <includes>
-        <include>ml.dmlc.mxnet:libmxnet-scala-linux-x86_64-gpu:so</include>
+        <include>org.apache.mxnet:libmxnet-scala-linux-x86_64-gpu:so</include>
       </includes>
     </dependencySet>
   </dependencySets>
diff --git a/scala-package/assembly/osx-x86_64-cpu/pom.xml b/scala-package/assembly/osx-x86_64-cpu/pom.xml
index 0b5c4e2..b1e5233 100644
--- a/scala-package/assembly/osx-x86_64-cpu/pom.xml
+++ b/scala-package/assembly/osx-x86_64-cpu/pom.xml
@@ -4,7 +4,7 @@
          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>
-    <groupId>ml.dmlc.mxnet</groupId>
+    <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-full-parent_2.11</artifactId>
     <version>1.0.1-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
@@ -16,12 +16,12 @@
 
   <dependencies>
     <dependency>
-      <groupId>ml.dmlc.mxnet</groupId>
+      <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-core_${scala.binary.version}</artifactId>
       <version>1.0.1-SNAPSHOT</version>
     </dependency>
     <dependency>
-      <groupId>ml.dmlc.mxnet</groupId>
+      <groupId>org.apache.mxnet</groupId>
       <artifactId>libmxnet-scala-osx-x86_64-cpu</artifactId>
       <version>1.0.1-SNAPSHOT</version>
       <type>jnilib</type>
diff --git a/scala-package/assembly/osx-x86_64-cpu/src/main/assembly/assembly.xml b/scala-package/assembly/osx-x86_64-cpu/src/main/assembly/assembly.xml
index 1abf81d..bdbd09f 100644
--- a/scala-package/assembly/osx-x86_64-cpu/src/main/assembly/assembly.xml
+++ b/scala-package/assembly/osx-x86_64-cpu/src/main/assembly/assembly.xml
@@ -21,7 +21,7 @@
       <useProjectArtifact>false</useProjectArtifact>
       <useStrictFiltering>false</useStrictFiltering>
       <includes>
-        <include>ml.dmlc.mxnet:libmxnet-scala-osx-x86_64-cpu:jnilib</include>
+        <include>org.apache.mxnet:libmxnet-scala-osx-x86_64-cpu:jnilib</include>
       </includes>
     </dependencySet>
   </dependencySets>
diff --git a/scala-package/assembly/pom.xml b/scala-package/assembly/pom.xml
index efa3b75..e6505dd 100644
--- a/scala-package/assembly/pom.xml
+++ b/scala-package/assembly/pom.xml
@@ -4,7 +4,7 @@
          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>
-    <groupId>ml.dmlc.mxnet</groupId>
+    <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-parent_2.11</artifactId>
     <version>1.0.1-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
diff --git a/scala-package/core/pom.xml b/scala-package/core/pom.xml
index b721906..75aabde 100644
--- a/scala-package/core/pom.xml
+++ b/scala-package/core/pom.xml
@@ -4,7 +4,7 @@
          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>
-    <groupId>ml.dmlc.mxnet</groupId>
+    <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-parent_2.11</artifactId>
     <version>1.0.1-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
@@ -69,13 +69,13 @@
   </build>
   <dependencies>
     <dependency>
-      <groupId>ml.dmlc.mxnet</groupId>
+      <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-init_${scala.binary.version}</artifactId>
       <version>1.0.1-SNAPSHOT</version>
       <scope>provided</scope>
     </dependency>
     <dependency>
-      <groupId>ml.dmlc.mxnet</groupId>
+      <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-macros_${scala.binary.version}</artifactId>
       <version>1.0.1-SNAPSHOT</version>
       <scope>provided</scope>
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/AttrScope.scala b/scala-package/core/src/main/scala/org/apache/mxnet/AttrScope.scala
similarity index 98%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/AttrScope.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/AttrScope.scala
index eaded00..6dac750 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/AttrScope.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/AttrScope.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 /**
  * Attribute manager for scoping.
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Base.scala b/scala-package/core/src/main/scala/org/apache/mxnet/Base.scala
similarity index 98%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/Base.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/Base.scala
index 5c67b85..58769b2 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Base.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/Base.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
-import ml.dmlc.mxnet.util.NativeLibraryLoader
+import org.apache.mxnet.util.NativeLibraryLoader
 import org.slf4j.{LoggerFactory, Logger}
 
 private[mxnet] object Base {
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Callback.scala b/scala-package/core/src/main/scala/org/apache/mxnet/Callback.scala
similarity index 98%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/Callback.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/Callback.scala
index 43af5e8..e98f2c7 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Callback.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/Callback.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 import org.slf4j.{Logger, LoggerFactory}
 
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Context.scala b/scala-package/core/src/main/scala/org/apache/mxnet/Context.scala
similarity index 98%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/Context.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/Context.scala
index 8833f31..beeb430 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Context.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/Context.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 object Context {
   val devtype2str = Map(1 -> "cpu", 2 -> "gpu", 3 -> "cpu_pinned")
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/DType.scala b/scala-package/core/src/main/scala/org/apache/mxnet/DType.scala
similarity index 98%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/DType.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/DType.scala
index bfe757d..b790ec3 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/DType.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/DType.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 object DType extends Enumeration {
   type DType = Value
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/EvalMetric.scala b/scala-package/core/src/main/scala/org/apache/mxnet/EvalMetric.scala
similarity index 99%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/EvalMetric.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/EvalMetric.scala
index 98a09d2..660ec8a 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/EvalMetric.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/EvalMetric.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 import scala.collection.mutable.ArrayBuffer
 
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Executor.scala b/scala-package/core/src/main/scala/org/apache/mxnet/Executor.scala
similarity index 99%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/Executor.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/Executor.scala
index e1d78d1..2f79b58 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Executor.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/Executor.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
-import ml.dmlc.mxnet.Base._
+import org.apache.mxnet.Base._
 import org.slf4j.{Logger, LoggerFactory}
 
 import scala.collection.mutable.ArrayBuffer
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/ExecutorManager.scala b/scala-package/core/src/main/scala/org/apache/mxnet/ExecutorManager.scala
similarity index 99%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/ExecutorManager.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/ExecutorManager.scala
index 5c4e47a..22914a5 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/ExecutorManager.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/ExecutorManager.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
-import ml.dmlc.mxnet.DType.DType
+import org.apache.mxnet.DType.DType
 import org.slf4j.{LoggerFactory, Logger}
 
 import scala.collection.immutable.ListMap
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/FeedForward.scala b/scala-package/core/src/main/scala/org/apache/mxnet/FeedForward.scala
similarity index 99%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/FeedForward.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/FeedForward.scala
index a3237fe..7289df1 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/FeedForward.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/FeedForward.scala
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
-import ml.dmlc.mxnet.io.NDArrayIter
-import ml.dmlc.mxnet.optimizer.SGD
+import org.apache.mxnet.io.NDArrayIter
+import org.apache.mxnet.optimizer.SGD
 import org.slf4j.{LoggerFactory, Logger}
 
 import scala.collection.mutable.ListBuffer
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/IO.scala b/scala-package/core/src/main/scala/org/apache/mxnet/IO.scala
similarity index 98%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/IO.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/IO.scala
index 7bc936f..0aad120 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/IO.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/IO.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
-import ml.dmlc.mxnet.Base._
-import ml.dmlc.mxnet.DType.DType
-import ml.dmlc.mxnet.io.{MXDataPack, MXDataIter}
+import org.apache.mxnet.Base._
+import org.apache.mxnet.DType.DType
+import org.apache.mxnet.io.{MXDataPack, MXDataIter}
 import org.slf4j.LoggerFactory
 
 import scala.collection.immutable.ListMap
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Initializer.scala b/scala-package/core/src/main/scala/org/apache/mxnet/Initializer.scala
similarity index 99%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/Initializer.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/Initializer.scala
index ad85969..e26690c 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Initializer.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/Initializer.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 /**
  *
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/KVStore.scala b/scala-package/core/src/main/scala/org/apache/mxnet/KVStore.scala
similarity index 99%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/KVStore.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/KVStore.scala
index 3ff606d..8e89ce7 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/KVStore.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/KVStore.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 import java.io._
 
-import ml.dmlc.mxnet.Base._
+import org.apache.mxnet.Base._
 import org.slf4j.{Logger, LoggerFactory}
 
 /**
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/KVStoreServer.scala b/scala-package/core/src/main/scala/org/apache/mxnet/KVStoreServer.scala
similarity index 98%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/KVStoreServer.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/KVStoreServer.scala
index d3c8691..4c5ca66 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/KVStoreServer.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/KVStoreServer.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
-import ml.dmlc.mxnet.Base._
+import org.apache.mxnet.Base._
 import org.slf4j.{Logger, LoggerFactory}
 
 private[mxnet] class KVStoreServer(private val kvStore: KVStore) {
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/LRScheduler.scala b/scala-package/core/src/main/scala/org/apache/mxnet/LRScheduler.scala
similarity index 98%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/LRScheduler.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/LRScheduler.scala
index 399c5c8..0cab368 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/LRScheduler.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/LRScheduler.scala
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 import org.slf4j.LoggerFactory
 
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/LibInfo.scala b/scala-package/core/src/main/scala/org/apache/mxnet/LibInfo.scala
similarity index 99%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/LibInfo.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/LibInfo.scala
index a943e31..fd90548 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/LibInfo.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/LibInfo.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
-import ml.dmlc.mxnet.Base._
+import org.apache.mxnet.Base._
 
 import scala.collection.mutable.{ArrayBuffer, ListBuffer}
 
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Model.scala b/scala-package/core/src/main/scala/org/apache/mxnet/Model.scala
similarity index 99%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/Model.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/Model.scala
index 81ff1cf..ad6fae5 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Model.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/Model.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 import java.nio.ByteBuffer
 
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Monitor.scala b/scala-package/core/src/main/scala/org/apache/mxnet/Monitor.scala
similarity index 98%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/Monitor.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/Monitor.scala
index 634e56b..8e53d65 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Monitor.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/Monitor.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
-import ml.dmlc.mxnet.Base.NDArrayHandle
+import org.apache.mxnet.Base.NDArrayHandle
 import org.slf4j.LoggerFactory
 
 import scala.collection.mutable
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/NDArray.scala b/scala-package/core/src/main/scala/org/apache/mxnet/NDArray.scala
similarity index 99%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/NDArray.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/NDArray.scala
index 7cfc059..416f2d7 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/NDArray.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/NDArray.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 import java.nio.{ByteBuffer, ByteOrder}
 
-import ml.dmlc.mxnet.Base._
-import ml.dmlc.mxnet.DType.DType
+import org.apache.mxnet.Base._
+import org.apache.mxnet.DType.DType
 import org.slf4j.LoggerFactory
 
 import scala.collection.mutable
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/NameManager.scala b/scala-package/core/src/main/scala/org/apache/mxnet/NameManager.scala
similarity index 98%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/NameManager.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/NameManager.scala
index 63e0ca0..dbc9612 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/NameManager.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/NameManager.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 import scala.collection.mutable
 
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Operator.scala b/scala-package/core/src/main/scala/org/apache/mxnet/Operator.scala
similarity index 99%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/Operator.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/Operator.scala
index b8332c6..6630d5f 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Operator.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/Operator.scala
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
-import ml.dmlc.mxnet.Base._
-import ml.dmlc.mxnet.DType.DType
+import org.apache.mxnet.Base._
+import org.apache.mxnet.DType.DType
 import scala.collection.mutable.ArrayBuffer
 
 /**
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Optimizer.scala b/scala-package/core/src/main/scala/org/apache/mxnet/Optimizer.scala
similarity index 99%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/Optimizer.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/Optimizer.scala
index 27db565..758cbc8 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Optimizer.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/Optimizer.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 import java.io._
 
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Profiler.scala b/scala-package/core/src/main/scala/org/apache/mxnet/Profiler.scala
similarity index 97%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/Profiler.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/Profiler.scala
index ce1103a..3c57c66 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Profiler.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/Profiler.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
-import ml.dmlc.mxnet.Base._
+import org.apache.mxnet.Base._
 
 object Profiler {
 
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Random.scala b/scala-package/core/src/main/scala/org/apache/mxnet/Random.scala
similarity index 98%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/Random.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/Random.scala
index 210e61d..3449083 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Random.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/Random.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
-import ml.dmlc.mxnet.Base._
+import org.apache.mxnet.Base._
 
 /**
  * Random Number interface of mxnet.
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/RecordIO.scala b/scala-package/core/src/main/scala/org/apache/mxnet/RecordIO.scala
similarity index 99%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/RecordIO.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/RecordIO.scala
index 5164ee3..efd4384 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/RecordIO.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/RecordIO.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
-import ml.dmlc.mxnet.Base._
+import org.apache.mxnet.Base._
 import java.io.File
 import scala.io.Source
 import java.io.PrintWriter
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Rtc.scala b/scala-package/core/src/main/scala/org/apache/mxnet/Rtc.scala
similarity index 98%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/Rtc.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/Rtc.scala
index d88f84c..e0a5d94 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Rtc.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/Rtc.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
-import ml.dmlc.mxnet.Base._
+import org.apache.mxnet.Base._
 
  /**
  * This class allow you to write cuda kernel in Scala
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Serializer.scala b/scala-package/core/src/main/scala/org/apache/mxnet/Serializer.scala
similarity index 98%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/Serializer.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/Serializer.scala
index 7bba766..556f7e8 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Serializer.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/Serializer.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 import java.io._
 import java.nio.ByteBuffer
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Shape.scala b/scala-package/core/src/main/scala/org/apache/mxnet/Shape.scala
similarity index 98%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/Shape.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/Shape.scala
index f7b7370..e632ade 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Shape.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/Shape.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 /**
  * Shape of [[NDArray]] or other data
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Symbol.scala b/scala-package/core/src/main/scala/org/apache/mxnet/Symbol.scala
similarity index 99%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/Symbol.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/Symbol.scala
index 44b371f..13f85a7 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Symbol.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/Symbol.scala
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
-import ml.dmlc.mxnet.Base._
-import ml.dmlc.mxnet.DType.DType
+import org.apache.mxnet.Base._
+import org.apache.mxnet.DType.DType
 import org.slf4j.{Logger, LoggerFactory}
 
 import scala.collection.mutable.{ArrayBuffer, ListBuffer}
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Visualization.scala b/scala-package/core/src/main/scala/org/apache/mxnet/Visualization.scala
similarity index 99%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/Visualization.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/Visualization.scala
index 49c66a9..ee2f10c 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/Visualization.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/Visualization.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 import scala.util.parsing.json._
 import java.io.File
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/contrib/NDArray.scala b/scala-package/core/src/main/scala/org/apache/mxnet/contrib/NDArray.scala
similarity index 88%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/contrib/NDArray.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/contrib/NDArray.scala
index 03b06d5..e0f7b94 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/contrib/NDArray.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/contrib/NDArray.scala
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.contrib
+package org.apache.mxnet.contrib
 
-import ml.dmlc.mxnet.NDArray._
-import ml.dmlc.mxnet.AddNDArrayFunctions
+import org.apache.mxnet.NDArray._
+import org.apache.mxnet.AddNDArrayFunctions
 
 @AddNDArrayFunctions(true)
 object NDArray {
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/contrib/Symbol.scala b/scala-package/core/src/main/scala/org/apache/mxnet/contrib/Symbol.scala
similarity index 88%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/contrib/Symbol.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/contrib/Symbol.scala
index a039f6d..9412762 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/contrib/Symbol.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/contrib/Symbol.scala
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.contrib
+package org.apache.mxnet.contrib
 
-import ml.dmlc.mxnet.Symbol._
-import ml.dmlc.mxnet.AddSymbolFunctions
+import org.apache.mxnet.Symbol._
+import org.apache.mxnet.AddSymbolFunctions
 
 @AddSymbolFunctions(true)
 object Symbol {
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/io/MXDataIter.scala b/scala-package/core/src/main/scala/org/apache/mxnet/io/MXDataIter.scala
similarity index 96%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/io/MXDataIter.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/io/MXDataIter.scala
index 32ba359..2a0c333 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/io/MXDataIter.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/io/MXDataIter.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.io
+package org.apache.mxnet.io
 
-import ml.dmlc.mxnet.Base._
-import ml.dmlc.mxnet.{DataBatch, DataIter, DataPack, NDArray, Shape, WarnIfNotDisposed}
-import ml.dmlc.mxnet.IO._
+import org.apache.mxnet.Base._
+import org.apache.mxnet.{DataBatch, DataIter, DataPack, NDArray, Shape, WarnIfNotDisposed}
+import org.apache.mxnet.IO._
 import org.slf4j.LoggerFactory
 
 import scala.collection.immutable.ListMap
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/io/NDArrayIter.scala b/scala-package/core/src/main/scala/org/apache/mxnet/io/NDArrayIter.scala
similarity index 98%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/io/NDArrayIter.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/io/NDArrayIter.scala
index e7dd51b..5108938 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/io/NDArrayIter.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/io/NDArrayIter.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.io
+package org.apache.mxnet.io
 
 import java.util.NoSuchElementException
 
-import ml.dmlc.mxnet.Base._
-import ml.dmlc.mxnet._
+import org.apache.mxnet.Base._
+import org.apache.mxnet._
 import org.slf4j.LoggerFactory
 
 import scala.collection.immutable.ListMap
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/io/PrefetchingIter.scala b/scala-package/core/src/main/scala/org/apache/mxnet/io/PrefetchingIter.scala
similarity index 98%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/io/PrefetchingIter.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/io/PrefetchingIter.scala
index 3270ba7..c0c0d17 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/io/PrefetchingIter.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/io/PrefetchingIter.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.io
+package org.apache.mxnet.io
 
-import ml.dmlc.mxnet.{DataBatch, DataIter, NDArray, Shape}
+import org.apache.mxnet.{DataBatch, DataIter, NDArray, Shape}
 import org.slf4j.LoggerFactory
 import java.util.concurrent.Semaphore
 
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/io/ResizeIter.scala b/scala-package/core/src/main/scala/org/apache/mxnet/io/ResizeIter.scala
similarity index 97%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/io/ResizeIter.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/io/ResizeIter.scala
index d3b113f..75d88d1 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/io/ResizeIter.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/io/ResizeIter.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.io
+package org.apache.mxnet.io
 
 import java.util.NoSuchElementException
 
-import ml.dmlc.mxnet.{DataBatch, DataIter, NDArray, Shape}
+import org.apache.mxnet.{DataBatch, DataIter, NDArray, Shape}
 import org.slf4j.LoggerFactory
 
 import scala.collection.immutable.ListMap
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/module/BaseModule.scala b/scala-package/core/src/main/scala/org/apache/mxnet/module/BaseModule.scala
similarity index 99%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/module/BaseModule.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/module/BaseModule.scala
index 1878b35..108cff4 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/module/BaseModule.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/module/BaseModule.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.module
+package org.apache.mxnet.module
 
 import java.io.IOException
 
-import ml.dmlc.mxnet.optimizer.SGD
-import ml.dmlc.mxnet._
+import org.apache.mxnet.optimizer.SGD
+import org.apache.mxnet._
 import org.slf4j.LoggerFactory
 import org.slf4j.Logger
 import scala.collection.mutable.ArrayBuffer
@@ -395,7 +395,7 @@ abstract class BaseModule {
           fitParams: FitParams = new FitParams): Unit = {
     require(fitParams != null)
     require(numEpoch > 0, "please specify number of epochs")
-    import ml.dmlc.mxnet.DataDesc._
+    import org.apache.mxnet.DataDesc._
     bind(dataShapes = trainData.provideData, labelShapes = Option(trainData.provideLabel),
          forTraining = true, forceRebind = fitParams.forceRebind)
     fitParams.monitor.foreach(installMonitor)
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/module/BucketingModule.scala b/scala-package/core/src/main/scala/org/apache/mxnet/module/BucketingModule.scala
similarity index 99%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/module/BucketingModule.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/module/BucketingModule.scala
index d64ccc0..2823818 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/module/BucketingModule.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/module/BucketingModule.scala
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.module
+package org.apache.mxnet.module
 
-import ml.dmlc.mxnet._
+import org.apache.mxnet._
 import org.slf4j.LoggerFactory
 import org.slf4j.Logger
 import scala.collection.mutable.ArrayBuffer
-import ml.dmlc.mxnet.optimizer.SGD
+import org.apache.mxnet.optimizer.SGD
 import scala.collection.immutable.ListMap
-import ml.dmlc.mxnet.module.BaseModule._
+import org.apache.mxnet.module.BaseModule._
 
 /**
  * This module helps to deal efficiently with varying-length inputs.
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/module/DataParallelExecutorGroup.scala b/scala-package/core/src/main/scala/org/apache/mxnet/module/DataParallelExecutorGroup.scala
similarity index 99%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/module/DataParallelExecutorGroup.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/module/DataParallelExecutorGroup.scala
index 010bb1c..c13ebcd 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/module/DataParallelExecutorGroup.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/module/DataParallelExecutorGroup.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.module
+package org.apache.mxnet.module
 
-import ml.dmlc.mxnet.DType.DType
-import ml.dmlc.mxnet._
-import ml.dmlc.mxnet.module.DataParallelExecutorGroup.Builder
+import org.apache.mxnet.DType.DType
+import org.apache.mxnet._
+import org.apache.mxnet.module.DataParallelExecutorGroup.Builder
 import org.slf4j.{Logger, LoggerFactory}
 
 import scala.collection.mutable
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/module/Module.scala b/scala-package/core/src/main/scala/org/apache/mxnet/module/Module.scala
similarity index 99%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/module/Module.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/module/Module.scala
index 445622e..ac3d645 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/module/Module.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/module/Module.scala
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.module
+package org.apache.mxnet.module
 
 import java.io.{FileInputStream, BufferedInputStream, BufferedOutputStream, FileOutputStream}
-import ml.dmlc.mxnet.DType.DType
-import ml.dmlc.mxnet._
-import ml.dmlc.mxnet.module.DataParallelExecutorGroup.Builder
-import ml.dmlc.mxnet.optimizer.SGD
+import org.apache.mxnet.DType.DType
+import org.apache.mxnet._
+import org.apache.mxnet.module.DataParallelExecutorGroup.Builder
+import org.apache.mxnet.optimizer.SGD
 import org.slf4j.LoggerFactory
 
 /**
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/module/SequentialModule.scala b/scala-package/core/src/main/scala/org/apache/mxnet/module/SequentialModule.scala
similarity index 99%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/module/SequentialModule.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/module/SequentialModule.scala
index a77041d..f376b54 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/module/SequentialModule.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/module/SequentialModule.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.module
+package org.apache.mxnet.module
 
-import ml.dmlc.mxnet._
+import org.apache.mxnet._
 import org.slf4j.LoggerFactory
 import scala.collection.mutable.ArrayBuffer
-import ml.dmlc.mxnet.optimizer.SGD
+import org.apache.mxnet.optimizer.SGD
 import scala.collection.immutable.ListMap
 
 /**
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/optimizer/AdaDelta.scala b/scala-package/core/src/main/scala/org/apache/mxnet/optimizer/AdaDelta.scala
similarity index 95%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/optimizer/AdaDelta.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/optimizer/AdaDelta.scala
index 63a7810..3afe509 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/optimizer/AdaDelta.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/optimizer/AdaDelta.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.optimizer
+package org.apache.mxnet.optimizer
 
-import ml.dmlc.mxnet.NDArrayConversions._
-import ml.dmlc.mxnet.util.SerializerUtils
-import ml.dmlc.mxnet.{NDArray, Optimizer}
+import org.apache.mxnet.NDArrayConversions._
+import org.apache.mxnet.util.SerializerUtils
+import org.apache.mxnet.{NDArray, Optimizer}
 
 /**
  * AdaDelta optimizer as described in Matthew D. Zeiler, 2012.
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/optimizer/AdaGrad.scala b/scala-package/core/src/main/scala/org/apache/mxnet/optimizer/AdaGrad.scala
similarity index 95%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/optimizer/AdaGrad.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/optimizer/AdaGrad.scala
index c13fe2a..ed3c513 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/optimizer/AdaGrad.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/optimizer/AdaGrad.scala
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.optimizer
+package org.apache.mxnet.optimizer
 
-import ml.dmlc.mxnet.NDArrayConversions._
-import ml.dmlc.mxnet.{NDArray, Optimizer}
+import org.apache.mxnet.NDArrayConversions._
+import org.apache.mxnet.{NDArray, Optimizer}
 
 /**
  * AdaGrad optimizer as described in Matthew D. Zeiler, 2012.
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/optimizer/Adam.scala b/scala-package/core/src/main/scala/org/apache/mxnet/optimizer/Adam.scala
similarity index 96%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/optimizer/Adam.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/optimizer/Adam.scala
index f611192..24f3323 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/optimizer/Adam.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/optimizer/Adam.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.optimizer
+package org.apache.mxnet.optimizer
 
-import ml.dmlc.mxnet.NDArrayConversions._
-import ml.dmlc.mxnet.util.SerializerUtils
-import ml.dmlc.mxnet.{LRScheduler, NDArray, Optimizer}
+import org.apache.mxnet.NDArrayConversions._
+import org.apache.mxnet.util.SerializerUtils
+import org.apache.mxnet.{LRScheduler, NDArray, Optimizer}
 
 /**
  * Adam optimizer as described in [King2014]
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/optimizer/DCASGD.scala b/scala-package/core/src/main/scala/org/apache/mxnet/optimizer/DCASGD.scala
similarity index 95%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/optimizer/DCASGD.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/optimizer/DCASGD.scala
index 5af4caa..6b5053b 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/optimizer/DCASGD.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/optimizer/DCASGD.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.optimizer
+package org.apache.mxnet.optimizer
 
-import ml.dmlc.mxnet.{Optimizer, LRScheduler, NDArray}
-import ml.dmlc.mxnet.NDArrayConversions._
-import ml.dmlc.mxnet.util.SerializerUtils
+import org.apache.mxnet.{Optimizer, LRScheduler, NDArray}
+import org.apache.mxnet.NDArrayConversions._
+import org.apache.mxnet.util.SerializerUtils
 
 /**
  * DCASGD optimizer with momentum and weight regularization.
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/optimizer/NAG.scala b/scala-package/core/src/main/scala/org/apache/mxnet/optimizer/NAG.scala
similarity index 96%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/optimizer/NAG.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/optimizer/NAG.scala
index 2b2ce5f..47fe62d 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/optimizer/NAG.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/optimizer/NAG.scala
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.optimizer
+package org.apache.mxnet.optimizer
 
-import ml.dmlc.mxnet.{Optimizer, LRScheduler, NDArray}
-import ml.dmlc.mxnet.NDArrayConversions._
+import org.apache.mxnet.{Optimizer, LRScheduler, NDArray}
+import org.apache.mxnet.NDArrayConversions._
 
 /**
  * SGD with nesterov.
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/optimizer/RMSProp.scala b/scala-package/core/src/main/scala/org/apache/mxnet/optimizer/RMSProp.scala
similarity index 95%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/optimizer/RMSProp.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/optimizer/RMSProp.scala
index b1b6e40..49fca6a 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/optimizer/RMSProp.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/optimizer/RMSProp.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.optimizer
+package org.apache.mxnet.optimizer
 
-import ml.dmlc.mxnet.util.SerializerUtils
-import ml.dmlc.mxnet.{NDArray, Optimizer, LRScheduler}
-import ml.dmlc.mxnet.NDArrayConversions._
+import org.apache.mxnet.util.SerializerUtils
+import org.apache.mxnet.{NDArray, Optimizer, LRScheduler}
+import org.apache.mxnet.NDArrayConversions._
 
 /**
  * RMSProp optimizer as described in Tieleman & Hinton, 2012.
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/optimizer/SGD.scala b/scala-package/core/src/main/scala/org/apache/mxnet/optimizer/SGD.scala
similarity index 96%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/optimizer/SGD.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/optimizer/SGD.scala
index d3099d5..c1b7259 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/optimizer/SGD.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/optimizer/SGD.scala
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.optimizer
+package org.apache.mxnet.optimizer
 
-import ml.dmlc.mxnet.{Optimizer, LRScheduler, NDArray}
-import ml.dmlc.mxnet.NDArrayConversions._
+import org.apache.mxnet.{Optimizer, LRScheduler, NDArray}
+import org.apache.mxnet.NDArrayConversions._
 
 /**
  * A very simple SGD optimizer with momentum and weight regularization.
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/optimizer/SGLD.scala b/scala-package/core/src/main/scala/org/apache/mxnet/optimizer/SGLD.scala
similarity index 94%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/optimizer/SGLD.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/optimizer/SGLD.scala
index cb509f4..0765716 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/optimizer/SGLD.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/optimizer/SGLD.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.optimizer
+package org.apache.mxnet.optimizer
 
-import ml.dmlc.mxnet.{Optimizer, LRScheduler, NDArray}
-import ml.dmlc.mxnet.NDArrayConversions._
-import ml.dmlc.mxnet.Random
+import org.apache.mxnet.{Optimizer, LRScheduler, NDArray}
+import org.apache.mxnet.NDArrayConversions._
+import org.apache.mxnet.Random
 
 /**
  * Stochastic Langevin Dynamics Updater to sample from a distribution.
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/util/NativeLibraryLoader.scala b/scala-package/core/src/main/scala/org/apache/mxnet/util/NativeLibraryLoader.scala
similarity index 99%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/util/NativeLibraryLoader.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/util/NativeLibraryLoader.scala
index 500c97b..e94d320 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/util/NativeLibraryLoader.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/util/NativeLibraryLoader.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.util
+package org.apache.mxnet.util
 
 import java.io._
 
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/util/SerializerUtils.scala b/scala-package/core/src/main/scala/org/apache/mxnet/util/SerializerUtils.scala
similarity index 97%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/util/SerializerUtils.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/util/SerializerUtils.scala
index 5850212..343362e 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/util/SerializerUtils.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/util/SerializerUtils.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.util
+package org.apache.mxnet.util
 
 import java.io.{ObjectInputStream, ByteArrayInputStream, ObjectOutputStream, ByteArrayOutputStream}
 
-import ml.dmlc.mxnet.NDArray
+import org.apache.mxnet.NDArray
 
 private[mxnet] object SerializerUtils {
   /**
diff --git a/scala-package/core/src/main/scala/ml/dmlc/mxnet/util/WarnIfNotDisposed.scala b/scala-package/core/src/main/scala/org/apache/mxnet/util/WarnIfNotDisposed.scala
similarity index 99%
rename from scala-package/core/src/main/scala/ml/dmlc/mxnet/util/WarnIfNotDisposed.scala
rename to scala-package/core/src/main/scala/org/apache/mxnet/util/WarnIfNotDisposed.scala
index e6fd415..dc2c269 100644
--- a/scala-package/core/src/main/scala/ml/dmlc/mxnet/util/WarnIfNotDisposed.scala
+++ b/scala-package/core/src/main/scala/org/apache/mxnet/util/WarnIfNotDisposed.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 import org.slf4j.{Logger, LoggerFactory}
 import scala.util.Try
diff --git a/scala-package/core/src/test/scala/ml/dmlc/mxnet/AttrScopeSuite.scala b/scala-package/core/src/test/scala/org/apache/mxnet/AttrScopeSuite.scala
similarity index 98%
rename from scala-package/core/src/test/scala/ml/dmlc/mxnet/AttrScopeSuite.scala
rename to scala-package/core/src/test/scala/org/apache/mxnet/AttrScopeSuite.scala
index 60bc1ce..0283806 100644
--- a/scala-package/core/src/test/scala/ml/dmlc/mxnet/AttrScopeSuite.scala
+++ b/scala-package/core/src/test/scala/org/apache/mxnet/AttrScopeSuite.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 import org.scalatest.{BeforeAndAfterAll, FunSuite}
 
diff --git a/scala-package/core/src/test/scala/ml/dmlc/mxnet/CheckUtils.scala b/scala-package/core/src/test/scala/org/apache/mxnet/CheckUtils.scala
similarity index 98%
rename from scala-package/core/src/test/scala/ml/dmlc/mxnet/CheckUtils.scala
rename to scala-package/core/src/test/scala/org/apache/mxnet/CheckUtils.scala
index 3f723cf..1ddb292 100644
--- a/scala-package/core/src/test/scala/ml/dmlc/mxnet/CheckUtils.scala
+++ b/scala-package/core/src/test/scala/org/apache/mxnet/CheckUtils.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 object CheckUtils {
   def reldiff(a: NDArray, b: NDArray): Float = {
diff --git a/scala-package/core/src/test/scala/ml/dmlc/mxnet/ExecutorSuite.scala b/scala-package/core/src/test/scala/org/apache/mxnet/ExecutorSuite.scala
similarity index 97%
rename from scala-package/core/src/test/scala/ml/dmlc/mxnet/ExecutorSuite.scala
rename to scala-package/core/src/test/scala/org/apache/mxnet/ExecutorSuite.scala
index 839c359..ee38cc6 100644
--- a/scala-package/core/src/test/scala/ml/dmlc/mxnet/ExecutorSuite.scala
+++ b/scala-package/core/src/test/scala/org/apache/mxnet/ExecutorSuite.scala
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 import org.scalatest.{BeforeAndAfterAll, FunSuite}
-import ml.dmlc.mxnet.CheckUtils._
+import org.apache.mxnet.CheckUtils._
 
 class ExecutorSuite extends FunSuite with BeforeAndAfterAll {
   test("bind") {
diff --git a/scala-package/core/src/test/scala/ml/dmlc/mxnet/IOSuite.scala b/scala-package/core/src/test/scala/org/apache/mxnet/IOSuite.scala
similarity index 98%
rename from scala-package/core/src/test/scala/ml/dmlc/mxnet/IOSuite.scala
rename to scala-package/core/src/test/scala/org/apache/mxnet/IOSuite.scala
index ff23bf9..0f4b7c0 100644
--- a/scala-package/core/src/test/scala/ml/dmlc/mxnet/IOSuite.scala
+++ b/scala-package/core/src/test/scala/org/apache/mxnet/IOSuite.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
-import ml.dmlc.mxnet.io.{NDArrayIter, ResizeIter, PrefetchingIter}
+import org.apache.mxnet.io.{NDArrayIter, ResizeIter, PrefetchingIter}
 import org.scalatest.{BeforeAndAfterAll, FunSuite}
 import scala.sys.process._
 
diff --git a/scala-package/core/src/test/scala/ml/dmlc/mxnet/KVStoreSuite.scala b/scala-package/core/src/test/scala/org/apache/mxnet/KVStoreSuite.scala
similarity index 99%
rename from scala-package/core/src/test/scala/ml/dmlc/mxnet/KVStoreSuite.scala
rename to scala-package/core/src/test/scala/org/apache/mxnet/KVStoreSuite.scala
index 8df6d18..2e1b36c 100644
--- a/scala-package/core/src/test/scala/ml/dmlc/mxnet/KVStoreSuite.scala
+++ b/scala-package/core/src/test/scala/org/apache/mxnet/KVStoreSuite.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 import org.scalatest.{BeforeAndAfterAll, FunSuite}
 
diff --git a/scala-package/core/src/test/scala/ml/dmlc/mxnet/ModelParallelSuite.scala b/scala-package/core/src/test/scala/org/apache/mxnet/ModelParallelSuite.scala
similarity index 97%
rename from scala-package/core/src/test/scala/ml/dmlc/mxnet/ModelParallelSuite.scala
rename to scala-package/core/src/test/scala/org/apache/mxnet/ModelParallelSuite.scala
index e95ab09..8ed1dc4 100644
--- a/scala-package/core/src/test/scala/ml/dmlc/mxnet/ModelParallelSuite.scala
+++ b/scala-package/core/src/test/scala/org/apache/mxnet/ModelParallelSuite.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
-import ml.dmlc.mxnet.CheckUtils._
+import org.apache.mxnet.CheckUtils._
 import org.scalatest.{BeforeAndAfterAll, FunSuite}
 
 class ModelParallelSuite extends FunSuite with BeforeAndAfterAll {
diff --git a/scala-package/core/src/test/scala/ml/dmlc/mxnet/ModuleSuite.scala b/scala-package/core/src/test/scala/org/apache/mxnet/ModuleSuite.scala
similarity index 98%
rename from scala-package/core/src/test/scala/ml/dmlc/mxnet/ModuleSuite.scala
rename to scala-package/core/src/test/scala/org/apache/mxnet/ModuleSuite.scala
index ab48ef7..d75d8a5 100644
--- a/scala-package/core/src/test/scala/ml/dmlc/mxnet/ModuleSuite.scala
+++ b/scala-package/core/src/test/scala/org/apache/mxnet/ModuleSuite.scala
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 import org.scalatest.{BeforeAndAfterAll, FunSuite}
-import ml.dmlc.mxnet.CheckUtils._
-import ml.dmlc.mxnet.module._
-import ml.dmlc.mxnet.optimizer._
-import ml.dmlc.mxnet.io._
+import org.apache.mxnet.CheckUtils._
+import org.apache.mxnet.module._
+import org.apache.mxnet.optimizer._
+import org.apache.mxnet.io._
 
 class ModuleSuite extends FunSuite with BeforeAndAfterAll {
   test ("model dtype") {
diff --git a/scala-package/core/src/test/scala/ml/dmlc/mxnet/NDArraySuite.scala b/scala-package/core/src/test/scala/org/apache/mxnet/NDArraySuite.scala
similarity index 99%
rename from scala-package/core/src/test/scala/ml/dmlc/mxnet/NDArraySuite.scala
rename to scala-package/core/src/test/scala/org/apache/mxnet/NDArraySuite.scala
index 0aa1e72..537a970 100644
--- a/scala-package/core/src/test/scala/ml/dmlc/mxnet/NDArraySuite.scala
+++ b/scala-package/core/src/test/scala/org/apache/mxnet/NDArraySuite.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 import java.io.File
 import java.util.concurrent.atomic.AtomicInteger
 
-import ml.dmlc.mxnet.NDArrayConversions._
+import org.apache.mxnet.NDArrayConversions._
 import org.scalatest.{Matchers, BeforeAndAfterAll, FunSuite}
 
 class NDArraySuite extends FunSuite with BeforeAndAfterAll with Matchers {
diff --git a/scala-package/core/src/test/scala/ml/dmlc/mxnet/OperatorSuite.scala b/scala-package/core/src/test/scala/org/apache/mxnet/OperatorSuite.scala
similarity index 99%
rename from scala-package/core/src/test/scala/ml/dmlc/mxnet/OperatorSuite.scala
rename to scala-package/core/src/test/scala/org/apache/mxnet/OperatorSuite.scala
index 6c9a2fa..5531933 100644
--- a/scala-package/core/src/test/scala/ml/dmlc/mxnet/OperatorSuite.scala
+++ b/scala-package/core/src/test/scala/org/apache/mxnet/OperatorSuite.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
-import ml.dmlc.mxnet.CheckUtils._
+import org.apache.mxnet.CheckUtils._
 
 import org.scalatest.prop.GeneratorDrivenPropertyChecks
 import org.scalatest.{Matchers, BeforeAndAfterAll, FunSuite}
@@ -196,12 +196,12 @@ class OperatorSuite extends FunSuite with BeforeAndAfterAll
     val dataTmp = NDArray.ones(shape) * 5
 
     val test = {
-      import ml.dmlc.mxnet.SymbolConversions._
+      import org.apache.mxnet.SymbolConversions._
       2 / (4 - ((1 + data + 1) * 2 / 5) - 0.2)
     }
 
     val (npout1, npout) = {
-      import ml.dmlc.mxnet.NDArrayConversions._
+      import org.apache.mxnet.NDArrayConversions._
       val npout1 = 4 - ((1 + dataTmp + 1) * 2 / 5) - 0.2f
       val npout = 2 / npout1
       (npout1, npout)
@@ -680,14 +680,14 @@ class OperatorSuite extends FunSuite with BeforeAndAfterAll
     exeTest.forward()
     val out = exeTest.outputs.head
     val npout = {
-      import ml.dmlc.mxnet.NDArrayConversions._
+      import org.apache.mxnet.NDArrayConversions._
       1 / NDArray.sqrt(dataTmp) + NDArray.cos(dataTmp) + NDArray.sin(dataTmp)
     }
     assert(reldiff(out, npout) < 1e-6)
 
     val outGrad = NDArray.ones(shape) * 2
     val npoutGrad = {
-      import ml.dmlc.mxnet.NDArrayConversions._
+      import org.apache.mxnet.NDArrayConversions._
       outGrad * -(1 / (2 * dataTmp * NDArray.sqrt(dataTmp))) +
         outGrad * -1 * NDArray.sin(dataTmp) + outGrad * NDArray.cos(dataTmp)
     }
diff --git a/scala-package/core/src/test/scala/ml/dmlc/mxnet/RandomSuite.scala b/scala-package/core/src/test/scala/org/apache/mxnet/RandomSuite.scala
similarity index 98%
rename from scala-package/core/src/test/scala/ml/dmlc/mxnet/RandomSuite.scala
rename to scala-package/core/src/test/scala/org/apache/mxnet/RandomSuite.scala
index 9a83097..1f7b2a4 100644
--- a/scala-package/core/src/test/scala/ml/dmlc/mxnet/RandomSuite.scala
+++ b/scala-package/core/src/test/scala/org/apache/mxnet/RandomSuite.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 import org.scalatest.{BeforeAndAfterAll, FunSuite}
 
diff --git a/scala-package/core/src/test/scala/ml/dmlc/mxnet/RecordIOSuite.scala b/scala-package/core/src/test/scala/org/apache/mxnet/RecordIOSuite.scala
similarity index 99%
rename from scala-package/core/src/test/scala/ml/dmlc/mxnet/RecordIOSuite.scala
rename to scala-package/core/src/test/scala/org/apache/mxnet/RecordIOSuite.scala
index 8139d08..ca85b56 100644
--- a/scala-package/core/src/test/scala/ml/dmlc/mxnet/RecordIOSuite.scala
+++ b/scala-package/core/src/test/scala/org/apache/mxnet/RecordIOSuite.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 import org.scalatest.{BeforeAndAfterAll, FunSuite}
 import java.io._
diff --git a/scala-package/core/src/test/scala/ml/dmlc/mxnet/SerializerSuite.scala b/scala-package/core/src/test/scala/org/apache/mxnet/SerializerSuite.scala
similarity index 96%
rename from scala-package/core/src/test/scala/ml/dmlc/mxnet/SerializerSuite.scala
rename to scala-package/core/src/test/scala/org/apache/mxnet/SerializerSuite.scala
index b2d4b5d..86e229b 100644
--- a/scala-package/core/src/test/scala/ml/dmlc/mxnet/SerializerSuite.scala
+++ b/scala-package/core/src/test/scala/org/apache/mxnet/SerializerSuite.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
-import ml.dmlc.mxnet.optimizer.SGD
+import org.apache.mxnet.optimizer.SGD
 import org.scalatest.{Matchers, BeforeAndAfterAll, FunSuite}
 
 class SerializerSuite extends FunSuite with BeforeAndAfterAll with Matchers {
diff --git a/scala-package/core/src/test/scala/ml/dmlc/mxnet/ShapeSuite.scala b/scala-package/core/src/test/scala/org/apache/mxnet/ShapeSuite.scala
similarity index 97%
rename from scala-package/core/src/test/scala/ml/dmlc/mxnet/ShapeSuite.scala
rename to scala-package/core/src/test/scala/org/apache/mxnet/ShapeSuite.scala
index 6e8280d..b4b7486 100644
--- a/scala-package/core/src/test/scala/ml/dmlc/mxnet/ShapeSuite.scala
+++ b/scala-package/core/src/test/scala/org/apache/mxnet/ShapeSuite.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 import org.scalatest.{BeforeAndAfterAll, FunSuite}
 
diff --git a/scala-package/core/src/test/scala/ml/dmlc/mxnet/SymbolSuite.scala b/scala-package/core/src/test/scala/org/apache/mxnet/SymbolSuite.scala
similarity index 99%
rename from scala-package/core/src/test/scala/ml/dmlc/mxnet/SymbolSuite.scala
rename to scala-package/core/src/test/scala/org/apache/mxnet/SymbolSuite.scala
index 507d32c..ebb61d7 100644
--- a/scala-package/core/src/test/scala/ml/dmlc/mxnet/SymbolSuite.scala
+++ b/scala-package/core/src/test/scala/org/apache/mxnet/SymbolSuite.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 import org.scalatest.{BeforeAndAfterAll, FunSuite}
 
diff --git a/scala-package/core/src/test/scala/ml/dmlc/mxnet/TestUtil.scala b/scala-package/core/src/test/scala/org/apache/mxnet/TestUtil.scala
similarity index 98%
rename from scala-package/core/src/test/scala/ml/dmlc/mxnet/TestUtil.scala
rename to scala-package/core/src/test/scala/org/apache/mxnet/TestUtil.scala
index 58971c0..1187757 100644
--- a/scala-package/core/src/test/scala/ml/dmlc/mxnet/TestUtil.scala
+++ b/scala-package/core/src/test/scala/org/apache/mxnet/TestUtil.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 class TestUtil {
 
diff --git a/scala-package/core/src/test/scala/ml/dmlc/mxnet/gpu/RtcSuite.scala b/scala-package/core/src/test/scala/org/apache/mxnet/gpu/RtcSuite.scala
similarity index 98%
rename from scala-package/core/src/test/scala/ml/dmlc/mxnet/gpu/RtcSuite.scala
rename to scala-package/core/src/test/scala/org/apache/mxnet/gpu/RtcSuite.scala
index 28fe840..90d187d 100644
--- a/scala-package/core/src/test/scala/ml/dmlc/mxnet/gpu/RtcSuite.scala
+++ b/scala-package/core/src/test/scala/org/apache/mxnet/gpu/RtcSuite.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 import org.scalatest.{Ignore, BeforeAndAfterAll, FunSuite}
 
diff --git a/scala-package/core/src/test/scala/ml/dmlc/mxnet/train/ConvSuite.scala b/scala-package/core/src/test/scala/org/apache/mxnet/train/ConvSuite.scala
similarity index 97%
rename from scala-package/core/src/test/scala/ml/dmlc/mxnet/train/ConvSuite.scala
rename to scala-package/core/src/test/scala/org/apache/mxnet/train/ConvSuite.scala
index f24553a..44f57c0 100644
--- a/scala-package/core/src/test/scala/ml/dmlc/mxnet/train/ConvSuite.scala
+++ b/scala-package/core/src/test/scala/org/apache/mxnet/train/ConvSuite.scala
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.train
+package org.apache.mxnet.train
 
-import ml.dmlc.mxnet.optimizer.SGD
-import ml.dmlc.mxnet._
+import org.apache.mxnet.optimizer.SGD
+import org.apache.mxnet._
 import org.scalatest.{BeforeAndAfterAll, FunSuite}
 import org.slf4j.LoggerFactory
 
diff --git a/scala-package/core/src/test/scala/ml/dmlc/mxnet/util/SerializerUtilsSuite.scala b/scala-package/core/src/test/scala/org/apache/mxnet/util/SerializerUtilsSuite.scala
similarity index 95%
rename from scala-package/core/src/test/scala/ml/dmlc/mxnet/util/SerializerUtilsSuite.scala
rename to scala-package/core/src/test/scala/org/apache/mxnet/util/SerializerUtilsSuite.scala
index 3b4e395..c5cdc43 100644
--- a/scala-package/core/src/test/scala/ml/dmlc/mxnet/util/SerializerUtilsSuite.scala
+++ b/scala-package/core/src/test/scala/org/apache/mxnet/util/SerializerUtilsSuite.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.util
+package org.apache.mxnet.util
 
-import ml.dmlc.mxnet.NDArray
+import org.apache.mxnet.NDArray
 import org.scalatest.{BeforeAndAfterAll, FunSuite}
 
 class SerializerUtilsSuite extends FunSuite with BeforeAndAfterAll {
diff --git a/scala-package/core/src/test/scala/ml/dmlc/mxnet/util/WarnIfNotDiposedSuite.scala b/scala-package/core/src/test/scala/org/apache/mxnet/util/WarnIfNotDiposedSuite.scala
similarity index 98%
rename from scala-package/core/src/test/scala/ml/dmlc/mxnet/util/WarnIfNotDiposedSuite.scala
rename to scala-package/core/src/test/scala/org/apache/mxnet/util/WarnIfNotDiposedSuite.scala
index ffd9a69..835bd29 100644
--- a/scala-package/core/src/test/scala/ml/dmlc/mxnet/util/WarnIfNotDiposedSuite.scala
+++ b/scala-package/core/src/test/scala/org/apache/mxnet/util/WarnIfNotDiposedSuite.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 import org.scalatest.{BeforeAndAfterAll, FunSuite}
 
diff --git a/scala-package/dev/change-artifact-id.sh b/scala-package/dev/change-artifact-id.sh
index fa78379..4b7305f 100755
--- a/scala-package/dev/change-artifact-id.sh
+++ b/scala-package/dev/change-artifact-id.sh
@@ -44,7 +44,7 @@ find "$BASEDIR" -name 'pom.xml' -not -path '*target*' -print \
 
 # Change assembly including settings
 # <includes>
-# 	<include>ml.dmlc.mxnet:libmxnet-scala-linux-x86_64-cpu:so</include>
+# 	<include>org.apache.mxnet:libmxnet-scala-linux-x86_64-cpu:so</include>
 # </includes>
 find "$BASEDIR" -name 'assembly.xml' -not -path '*target*' -print \
   -exec bash -c \
diff --git a/scala-package/examples/pom.xml b/scala-package/examples/pom.xml
index eaa51f9..1ce127e 100644
--- a/scala-package/examples/pom.xml
+++ b/scala-package/examples/pom.xml
@@ -4,7 +4,7 @@
          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>
-    <groupId>ml.dmlc.mxnet</groupId>
+    <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-parent_2.11</artifactId>
     <version>1.0.1-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
@@ -116,7 +116,7 @@
 
   <dependencies>
     <dependency>
-      <groupId>ml.dmlc.mxnet</groupId>
+      <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-core_${scala.binary.version}</artifactId>
       <version>1.0.1-SNAPSHOT</version>
       <scope>provided</scope>
diff --git a/scala-package/examples/scripts/customop/run_customop.sh b/scala-package/examples/scripts/customop/run_customop.sh
index b11bb89..049df58 100644
--- a/scala-package/examples/scripts/customop/run_customop.sh
+++ b/scala-package/examples/scripts/customop/run_customop.sh
@@ -29,6 +29,6 @@ GPU=$1
 DATA_PATH=$2
 
 java -Xmx4G -cp $CLASS_PATH \
-	ml.dmlc.mxnetexamples.customop.ExampleCustomOp \
+	org.apache.mxnetexamples.customop.ExampleCustomOp \
 	--data-path $DATA_PATH \
 	--gpu $GPU
diff --git a/scala-package/examples/scripts/customop/run_customopwithrtc.sh b/scala-package/examples/scripts/customop/run_customopwithrtc.sh
index 160525e..d44949d 100644
--- a/scala-package/examples/scripts/customop/run_customopwithrtc.sh
+++ b/scala-package/examples/scripts/customop/run_customopwithrtc.sh
@@ -29,6 +29,6 @@ GPU=0
 DATA_PATH=$1
 
 java -Xmx4G -cp $CLASS_PATH \
-	ml.dmlc.mxnetexamples.customop.ExampleCustomOpWithRtc \
+	org.apache.mxnetexamples.customop.ExampleCustomOpWithRtc \
 	--data-path $DATA_PATH \
 	--gpu $GPU
diff --git a/scala-package/examples/scripts/module/mnist_mlp.sh b/scala-package/examples/scripts/module/mnist_mlp.sh
index 6bb9636..2930670 100755
--- a/scala-package/examples/scripts/module/mnist_mlp.sh
+++ b/scala-package/examples/scripts/module/mnist_mlp.sh
@@ -22,7 +22,7 @@ CLASSPATH=$ROOT_DIR/assembly/osx-x86_64-cpu/target/*:$ROOT_DIR/examples/target/*
 
 mkdir -p model
 java -Xmx4G -cp $CLASSPATH \
-	ml.dmlc.mxnetexamples.module.MnistMlp \
+	org.apache.mxnetexamples.module.MnistMlp \
   --data-dir "$ROOT_DIR/core/data/" \
   --batch-size 10 \
   --num-epoch 5
diff --git a/scala-package/examples/scripts/module/run_sequential_module.sh b/scala-package/examples/scripts/module/run_sequential_module.sh
index 9d9edb7..9e1f30e 100644
--- a/scala-package/examples/scripts/module/run_sequential_module.sh
+++ b/scala-package/examples/scripts/module/run_sequential_module.sh
@@ -27,7 +27,7 @@ SAVE_MODEL_PATH=.
 # LOAD_MODEL=seqModule-0001.params
 
 java -Xmx4G -cp $CLASSPATH \
-            ml.dmlc.mxnetexamples.module.SequentialModuleEx \
+            org.apache.mxnetexamples.module.SequentialModuleEx \
             --data-dir $DATA_DIR \
             --batch-size 10 \
             --num-epoch 2 \
diff --git a/scala-package/examples/scripts/neuralstyle_end2end/run_test_end2end.sh b/scala-package/examples/scripts/neuralstyle_end2end/run_test_end2end.sh
index 1c683bf..0305ba4 100644
--- a/scala-package/examples/scripts/neuralstyle_end2end/run_test_end2end.sh
+++ b/scala-package/examples/scripts/neuralstyle_end2end/run_test_end2end.sh
@@ -27,7 +27,7 @@ OUTPUT_DIR=$3
 GPU=0
 
 java -Xmx1024m -cp $CLASS_PATH \
-	ml.dmlc.mxnetexamples.neuralstyle.end2end.BoostInference \
+	org.apache.mxnetexamples.neuralstyle.end2end.BoostInference \
 	--model-path $MODEL_DIR \
 	--input-image $INPUT_IMG \
 	--output-path $OUTPUT_DIR \
diff --git a/scala-package/examples/scripts/neuralstyle_end2end/run_train_end2end.sh b/scala-package/examples/scripts/neuralstyle_end2end/run_train_end2end.sh
index fa08ff3..cde290f 100644
--- a/scala-package/examples/scripts/neuralstyle_end2end/run_train_end2end.sh
+++ b/scala-package/examples/scripts/neuralstyle_end2end/run_train_end2end.sh
@@ -30,7 +30,7 @@ SAVE_MODEL_DIR=$4
 GPU=0
 
 java -Xmx1024m -cp $CLASS_PATH \
-	ml.dmlc.mxnetexamples.neuralstyle.end2end.BoostTrain \
+	org.apache.mxnetexamples.neuralstyle.end2end.BoostTrain \
 	--data-path $TRAIN_DATA_PATH  \
 	--vgg--model-path  $VGG_MODEL_PATH \
 	--save--model-path $SAVE_MODEL_DIR \
diff --git a/scala-package/examples/scripts/profiler/run_profiler_matmul.sh b/scala-package/examples/scripts/profiler/run_profiler_matmul.sh
index 54aafaf..824578b 100644
--- a/scala-package/examples/scripts/profiler/run_profiler_matmul.sh
+++ b/scala-package/examples/scripts/profiler/run_profiler_matmul.sh
@@ -30,7 +30,7 @@ OUTPUT_PATH="."
 FILE_NAME="profile_matmul_20iter.json"
 
 java -Xmx4G -cp $CLASS_PATH \
-	ml.dmlc.mxnetexamples.profiler.ProfilerMatMul \
+	org.apache.mxnetexamples.profiler.ProfilerMatMul \
 	--gpu $GPU \
 	--profiler-mode $MODE \
 	--output-path $OUTPUT_PATH \
diff --git a/scala-package/examples/scripts/profiler/run_profiler_ndarray.sh b/scala-package/examples/scripts/profiler/run_profiler_ndarray.sh
index 711fe54..18f290e 100644
--- a/scala-package/examples/scripts/profiler/run_profiler_ndarray.sh
+++ b/scala-package/examples/scripts/profiler/run_profiler_ndarray.sh
@@ -28,7 +28,7 @@ OUTPUT_PATH="."
 FILE_NAME="profile_ndarray.json"
 
 java -Xmx4G -cp $CLASS_PATH \
-	ml.dmlc.mxnetexamples.profiler.ProfilerNDArray \
+	org.apache.mxnetexamples.profiler.ProfilerNDArray \
 	--profiler-mode $MODE \
 	--output-path $OUTPUT_PATH \
 	--profile-filename $FILE_NAME
diff --git a/scala-package/examples/scripts/rnn/run_lstm_bucketing.sh b/scala-package/examples/scripts/rnn/run_lstm_bucketing.sh
index 3ad160e..33dfce4 100644
--- a/scala-package/examples/scripts/rnn/run_lstm_bucketing.sh
+++ b/scala-package/examples/scripts/rnn/run_lstm_bucketing.sh
@@ -33,7 +33,7 @@ GPUS="0"
 SAVE_MODEL_PATH=./model/lstm
 
 java -Xmx4G -cp $CLASS_PATH \
-  ml.dmlc.mxnetexamples.rnn.LstmBucketing \
+  org.apache.mxnetexamples.rnn.LstmBucketing \
   --data-train $DATA_TRAIN \
   --data-val $DATA_VAL \
   --num-epoch $NUM_EPOCH \
diff --git a/scala-package/examples/scripts/rnn/run_test_charrnn.sh b/scala-package/examples/scripts/rnn/run_test_charrnn.sh
index a4ed913..bf02a1d 100644
--- a/scala-package/examples/scripts/rnn/run_test_charrnn.sh
+++ b/scala-package/examples/scripts/rnn/run_test_charrnn.sh
@@ -37,7 +37,7 @@ MODEL_PREFIX=$2
 STARTER_SENTENCE="The joke"
 
 java -Xmx4G -cp $CLASS_PATH \
-	ml.dmlc.mxnetexamples.rnn.TestCharRnn \
+	org.apache.mxnetexamples.rnn.TestCharRnn \
 	--data-path $DATA_PATH \
 	--model-prefix $MODEL_PREFIX \
 	--starter-sentence "$STARTER_SENTENCE"
diff --git a/scala-package/examples/scripts/rnn/run_train_charrnn.sh b/scala-package/examples/scripts/rnn/run_train_charrnn.sh
index 2e9a3a2..4877f57 100755
--- a/scala-package/examples/scripts/rnn/run_train_charrnn.sh
+++ b/scala-package/examples/scripts/rnn/run_train_charrnn.sh
@@ -36,7 +36,7 @@ DATA_PATH=$2
 SAVE_MODEL_PATH=$3
 
 java -Xmx4G -cp $CLASS_PATH \
-	ml.dmlc.mxnetexamples.rnn.TrainCharRnn \
+	org.apache.mxnetexamples.rnn.TrainCharRnn \
 	--data-path $DATA_PATH \
 	--save-model-path $SAVE_MODEL_PATH \
 	--gpu $GPU \
diff --git a/scala-package/examples/scripts/run_cnntextclassification.sh b/scala-package/examples/scripts/run_cnntextclassification.sh
index 7939b06..88fae7c 100644
--- a/scala-package/examples/scripts/run_cnntextclassification.sh
+++ b/scala-package/examples/scripts/run_cnntextclassification.sh
@@ -33,7 +33,7 @@ BATCH_SIZE=$5
 SAVE_MODEL_PATH=$6
 
 java -Xmx8G -cp $CLASS_PATH \
-	ml.dmlc.mxnetexamples.cnntextclassification.CNNTextClassification \
+	org.apache.mxnetexamples.cnntextclassification.CNNTextClassification \
 	--gpu $GPU \
 	--mr-dataset-path $MR_DATASET_PATH \
 	--w2v-file-path $W2V_FILE_PATH \
diff --git a/scala-package/examples/scripts/run_gan_mnist.sh b/scala-package/examples/scripts/run_gan_mnist.sh
index 951241f..f7c26a7 100644
--- a/scala-package/examples/scripts/run_gan_mnist.sh
+++ b/scala-package/examples/scripts/run_gan_mnist.sh
@@ -32,7 +32,7 @@ MNIST_DATA_PATH=$2
 OUTPUT_PATH=$3
 
 java -Xmx4G -cp $CLASS_PATH \
-	ml.dmlc.mxnetexamples.gan.GanMnist \
+	org.apache.mxnetexamples.gan.GanMnist \
 	--mnist-data-path $MNIST_DATA_PATH \
 	--gpu $GPU \
 	--output-path $OUTPUT_PATH
diff --git a/scala-package/examples/scripts/run_multitask.sh b/scala-package/examples/scripts/run_multitask.sh
index 9e6a489..6204752 100644
--- a/scala-package/examples/scripts/run_multitask.sh
+++ b/scala-package/examples/scripts/run_multitask.sh
@@ -29,6 +29,6 @@ GPU=$1
 DATA_PATH=$2
 
 java -Xmx4G -cp $CLASS_PATH \
-	ml.dmlc.mxnetexamples.multitask.ExampleMultiTask \
+	org.apache.mxnetexamples.multitask.ExampleMultiTask \
 	--data-path $DATA_PATH \
 	--gpu $GPU \
diff --git a/scala-package/examples/scripts/run_neuralstyle.sh b/scala-package/examples/scripts/run_neuralstyle.sh
index a9c2e5c..238c371 100644
--- a/scala-package/examples/scripts/run_neuralstyle.sh
+++ b/scala-package/examples/scripts/run_neuralstyle.sh
@@ -26,7 +26,7 @@ MODEL_PATH=$MXNET_ROOT/example/neural-style/model/vgg19.params
 OUTPUT_DIR=$MXNET_ROOT/example/neural-style/output
 
 java -Xmx1024m -cp $CLASS_PATH \
-	ml.dmlc.mxnetexamples.neuralstyle.NeuralStyle \
+	org.apache.mxnetexamples.neuralstyle.NeuralStyle \
 	--content-image $INPUT_IMG  \
 	--style-image  $STYLE_IMG \
 	--model-path  $MODEL_PATH \
diff --git a/scala-package/examples/scripts/run_visualization.sh b/scala-package/examples/scripts/run_visualization.sh
index a4b545e..3e8f5cd 100644
--- a/scala-package/examples/scripts/run_visualization.sh
+++ b/scala-package/examples/scripts/run_visualization.sh
@@ -31,6 +31,6 @@ OUT_DIR=$1
 NET=$2
 
 java -Xmx1024m -cp $CLASS_PATH \
-	ml.dmlc.mxnetexamples.visualization.ExampleVis \
+	org.apache.mxnetexamples.visualization.ExampleVis \
 	--out-dir $OUT_DIR  \
 	--net $NET
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/cnntextclassification/CNNTextClassification.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/cnntextclassification/CNNTextClassification.scala
similarity index 96%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/cnntextclassification/CNNTextClassification.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/cnntextclassification/CNNTextClassification.scala
index 582cbb7..796a92f 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/cnntextclassification/CNNTextClassification.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/cnntextclassification/CNNTextClassification.scala
@@ -15,20 +15,20 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.cnntextclassification
+package org.apache.mxnetexamples.cnntextclassification
 
 import org.kohsuke.args4j.{CmdLineParser, Option}
 import org.slf4j.LoggerFactory
 import scala.collection.JavaConverters._
-import ml.dmlc.mxnet.Uniform
-import ml.dmlc.mxnet.Context
-import ml.dmlc.mxnet.Symbol
-import ml.dmlc.mxnet.Shape
-import ml.dmlc.mxnet.NDArray
-import ml.dmlc.mxnet.Executor
-import ml.dmlc.mxnet.optimizer.RMSProp
-import ml.dmlc.mxnet.Optimizer
-import ml.dmlc.mxnet.Model
+import org.apache.mxnet.Uniform
+import org.apache.mxnet.Context
+import org.apache.mxnet.Symbol
+import org.apache.mxnet.Shape
+import org.apache.mxnet.NDArray
+import org.apache.mxnet.Executor
+import org.apache.mxnet.optimizer.RMSProp
+import org.apache.mxnet.Optimizer
+import org.apache.mxnet.Model
 import scala.util.Random
 
 /**
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/cnntextclassification/DataHelper.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/cnntextclassification/DataHelper.scala
similarity index 97%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/cnntextclassification/DataHelper.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/cnntextclassification/DataHelper.scala
index d1e6713..0d22fe1 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/cnntextclassification/DataHelper.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/cnntextclassification/DataHelper.scala
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.cnntextclassification
+package org.apache.mxnetexamples.cnntextclassification
 
 import scala.io.Source
 import java.io.BufferedInputStream
 import java.io.FileInputStream
 import java.io.DataInputStream
 import java.io.InputStream
-import ml.dmlc.mxnet.Random
-import ml.dmlc.mxnet.Context
-import ml.dmlc.mxnet.Shape
+import org.apache.mxnet.Random
+import org.apache.mxnet.Context
+import org.apache.mxnet.Shape
 
 /**
  * @author Depeng Liang
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/customop/Data.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/customop/Data.scala
similarity index 92%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/customop/Data.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/customop/Data.scala
index d813130..7cab3c0 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/customop/Data.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/customop/Data.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.customop
+package org.apache.mxnetexamples.customop
 
-import ml.dmlc.mxnet.Shape
-import ml.dmlc.mxnet.IO
-import ml.dmlc.mxnet.DataIter
+import org.apache.mxnet.Shape
+import org.apache.mxnet.IO
+import org.apache.mxnet.DataIter
 
 /**
  * @author Depeng Liang
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/customop/ExampleCustomOp.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/customop/ExampleCustomOp.scala
similarity index 92%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/customop/ExampleCustomOp.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/customop/ExampleCustomOp.scala
index f730597..d033d65 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/customop/ExampleCustomOp.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/customop/ExampleCustomOp.scala
@@ -15,27 +15,27 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.customop
+package org.apache.mxnetexamples.customop
 
 import org.kohsuke.args4j.{CmdLineParser, Option}
 import org.slf4j.LoggerFactory
 import scala.collection.JavaConverters._
-import ml.dmlc.mxnet.Symbol
-import ml.dmlc.mxnet.DType.DType
-import ml.dmlc.mxnet.DataIter
-import ml.dmlc.mxnet.DataBatch
-import ml.dmlc.mxnet.NDArray
-import ml.dmlc.mxnet.Shape
-import ml.dmlc.mxnet.EvalMetric
-import ml.dmlc.mxnet.Context
-import ml.dmlc.mxnet.Xavier
-import ml.dmlc.mxnet.optimizer.RMSProp
-import ml.dmlc.mxnet.CustomOp
-import ml.dmlc.mxnet.CustomOpProp
-import ml.dmlc.mxnet.Operator
-import ml.dmlc.mxnet.optimizer.SGD
-import ml.dmlc.mxnet.Accuracy
-import ml.dmlc.mxnet.Callback.Speedometer
+import org.apache.mxnet.Symbol
+import org.apache.mxnet.DType.DType
+import org.apache.mxnet.DataIter
+import org.apache.mxnet.DataBatch
+import org.apache.mxnet.NDArray
+import org.apache.mxnet.Shape
+import org.apache.mxnet.EvalMetric
+import org.apache.mxnet.Context
+import org.apache.mxnet.Xavier
+import org.apache.mxnet.optimizer.RMSProp
+import org.apache.mxnet.CustomOp
+import org.apache.mxnet.CustomOpProp
+import org.apache.mxnet.Operator
+import org.apache.mxnet.optimizer.SGD
+import org.apache.mxnet.Accuracy
+import org.apache.mxnet.Callback.Speedometer
 
 /**
  * Example of CustomOp
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/customop/ExampleCustomOpWithRtc.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/customop/ExampleCustomOpWithRtc.scala
similarity index 93%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/customop/ExampleCustomOpWithRtc.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/customop/ExampleCustomOpWithRtc.scala
index 7c8029f..030670c 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/customop/ExampleCustomOpWithRtc.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/customop/ExampleCustomOpWithRtc.scala
@@ -15,28 +15,28 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.customop
+package org.apache.mxnetexamples.customop
 
 import org.kohsuke.args4j.{CmdLineParser, Option}
 import org.slf4j.LoggerFactory
 import scala.collection.JavaConverters._
-import ml.dmlc.mxnet.Symbol
-import ml.dmlc.mxnet.DType.DType
-import ml.dmlc.mxnet.DataIter
-import ml.dmlc.mxnet.DataBatch
-import ml.dmlc.mxnet.NDArray
-import ml.dmlc.mxnet.Shape
-import ml.dmlc.mxnet.EvalMetric
-import ml.dmlc.mxnet.Context
-import ml.dmlc.mxnet.Xavier
-import ml.dmlc.mxnet.optimizer.RMSProp
-import ml.dmlc.mxnet.CustomOp
-import ml.dmlc.mxnet.CustomOpProp
-import ml.dmlc.mxnet.Operator
-import ml.dmlc.mxnet.optimizer.SGD
-import ml.dmlc.mxnet.Accuracy
-import ml.dmlc.mxnet.Callback.Speedometer
-import ml.dmlc.mxnet.Rtc
+import org.apache.mxnet.Symbol
+import org.apache.mxnet.DType.DType
+import org.apache.mxnet.DataIter
+import org.apache.mxnet.DataBatch
+import org.apache.mxnet.NDArray
+import org.apache.mxnet.Shape
+import org.apache.mxnet.EvalMetric
+import org.apache.mxnet.Context
+import org.apache.mxnet.Xavier
+import org.apache.mxnet.optimizer.RMSProp
+import org.apache.mxnet.CustomOp
+import org.apache.mxnet.CustomOpProp
+import org.apache.mxnet.Operator
+import org.apache.mxnet.optimizer.SGD
+import org.apache.mxnet.Accuracy
+import org.apache.mxnet.Callback.Speedometer
+import org.apache.mxnet.Rtc
 
 /**
  * Example of CustomOp with Rtc
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/gan/GanMnist.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/gan/GanMnist.scala
similarity index 95%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/gan/GanMnist.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/gan/GanMnist.scala
index 55e5c3a..4fa96f6 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/gan/GanMnist.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/gan/GanMnist.scala
@@ -15,22 +15,22 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.gan
+package org.apache.mxnetexamples.gan
 
 import org.kohsuke.args4j.{CmdLineParser, Option}
 import org.slf4j.LoggerFactory
 import scala.collection.JavaConverters._
 import Viz._
-import ml.dmlc.mxnet.Context
-import ml.dmlc.mxnet.Shape
-import ml.dmlc.mxnet.IO
-import ml.dmlc.mxnet.NDArray
-import ml.dmlc.mxnet.CustomMetric
-import ml.dmlc.mxnet.Xavier
-import ml.dmlc.mxnet.optimizer.Adam
-import ml.dmlc.mxnet.DataBatch
-import ml.dmlc.mxnet.Symbol
-import ml.dmlc.mxnet.Shape
+import org.apache.mxnet.Context
+import org.apache.mxnet.Shape
+import org.apache.mxnet.IO
+import org.apache.mxnet.NDArray
+import org.apache.mxnet.CustomMetric
+import org.apache.mxnet.Xavier
+import org.apache.mxnet.optimizer.Adam
+import org.apache.mxnet.DataBatch
+import org.apache.mxnet.Symbol
+import org.apache.mxnet.Shape
 
 /**
  * @author Depeng Liang
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/gan/Module.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/gan/Module.scala
similarity index 95%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/gan/Module.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/gan/Module.scala
index f8ea2c5..faab945 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/gan/Module.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/gan/Module.scala
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.gan
-
-import ml.dmlc.mxnet.Symbol
-import ml.dmlc.mxnet.Context
-import ml.dmlc.mxnet.Shape
-import ml.dmlc.mxnet.Optimizer
-import ml.dmlc.mxnet.NDArray
-import ml.dmlc.mxnet.Initializer
-import ml.dmlc.mxnet.DataBatch
-import ml.dmlc.mxnet.Random
+package org.apache.mxnetexamples.gan
+
+import org.apache.mxnet.Symbol
+import org.apache.mxnet.Context
+import org.apache.mxnet.Shape
+import org.apache.mxnet.Optimizer
+import org.apache.mxnet.NDArray
+import org.apache.mxnet.Initializer
+import org.apache.mxnet.DataBatch
+import org.apache.mxnet.Random
 
 /**
  * @author Depeng Liang
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/gan/Viz.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/gan/Viz.scala
similarity index 97%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/gan/Viz.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/gan/Viz.scala
index 51d203e..c58f44d 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/gan/Viz.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/gan/Viz.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.gan
+package org.apache.mxnetexamples.gan
 
 import org.opencv.core.Core
 import org.opencv.highgui.Highgui
 import org.opencv.imgproc.Imgproc
-import ml.dmlc.mxnet.NDArray
+import org.apache.mxnet.NDArray
 import org.opencv.core.Mat
 import org.opencv.core.CvType
 import java.util.ArrayList
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/imclassification/ModelTrain.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/imclassification/ModelTrain.scala
similarity index 96%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/imclassification/ModelTrain.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/imclassification/ModelTrain.scala
index d06251c..ab86314 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/imclassification/ModelTrain.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/imclassification/ModelTrain.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.imclassification
+package org.apache.mxnetexamples.imclassification
 
-import ml.dmlc.mxnet.Callback.Speedometer
-import ml.dmlc.mxnet._
-import ml.dmlc.mxnet.optimizer.SGD
+import org.apache.mxnet.Callback.Speedometer
+import org.apache.mxnet._
+import org.apache.mxnet.optimizer.SGD
 import org.slf4j.LoggerFactory
 
 object ModelTrain {
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/imclassification/TrainMnist.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/imclassification/TrainMnist.scala
similarity index 99%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/imclassification/TrainMnist.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/imclassification/TrainMnist.scala
index 1f2bc7a..d1ec88d 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/imclassification/TrainMnist.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/imclassification/TrainMnist.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.imclassification
+package org.apache.mxnetexamples.imclassification
 
-import ml.dmlc.mxnet._
+import org.apache.mxnet._
 import org.kohsuke.args4j.{CmdLineParser, Option}
 import org.slf4j.LoggerFactory
 
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/module/MnistMlp.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/module/MnistMlp.scala
similarity index 96%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/module/MnistMlp.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/module/MnistMlp.scala
index 2eaffe7..4d450c6 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/module/MnistMlp.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/module/MnistMlp.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.module
+package org.apache.mxnetexamples.module
 
-import ml.dmlc.mxnet._
-import ml.dmlc.mxnet.module.{FitParams, Module}
-import ml.dmlc.mxnet.DataDesc._
-import ml.dmlc.mxnet.optimizer.SGD
+import org.apache.mxnet._
+import org.apache.mxnet.module.{FitParams, Module}
+import org.apache.mxnet.DataDesc._
+import org.apache.mxnet.optimizer.SGD
 import org.kohsuke.args4j.{Option, CmdLineParser}
 import org.slf4j.LoggerFactory
 
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/module/SequentialModuleEx.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/module/SequentialModuleEx.scala
similarity index 97%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/module/SequentialModuleEx.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/module/SequentialModuleEx.scala
index c6676cc..ff616a5 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/module/SequentialModuleEx.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/module/SequentialModuleEx.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.module
+package org.apache.mxnetexamples.module
 
-import ml.dmlc.mxnet._
-import ml.dmlc.mxnet.module.{FitParams, Module, SequentialModule}
-import ml.dmlc.mxnet.DataDesc._
-import ml.dmlc.mxnet.optimizer.SGD
+import org.apache.mxnet._
+import org.apache.mxnet.module.{FitParams, Module, SequentialModule}
+import org.apache.mxnet.DataDesc._
+import org.apache.mxnet.optimizer.SGD
 import org.kohsuke.args4j.{Option, CmdLineParser}
 import org.slf4j.LoggerFactory
 import scala.collection.JavaConverters._
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/multitask/Data.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/multitask/Data.scala
similarity index 92%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/multitask/Data.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/multitask/Data.scala
index 27a542b..bb17046 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/multitask/Data.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/multitask/Data.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.multitask
+package org.apache.mxnetexamples.multitask
 
-import ml.dmlc.mxnet.Shape
-import ml.dmlc.mxnet.IO
-import ml.dmlc.mxnet.DataIter
+import org.apache.mxnet.Shape
+import org.apache.mxnet.IO
+import org.apache.mxnet.DataIter
 
 /**
  * @author Depeng Liang
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/multitask/ExampleMultiTask.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/multitask/ExampleMultiTask.scala
similarity index 96%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/multitask/ExampleMultiTask.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/multitask/ExampleMultiTask.scala
index 9d2ff9d..c9722a2 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/multitask/ExampleMultiTask.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/multitask/ExampleMultiTask.scala
@@ -15,20 +15,20 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.multitask
+package org.apache.mxnetexamples.multitask
 
 import org.kohsuke.args4j.{CmdLineParser, Option}
 import org.slf4j.LoggerFactory
 import scala.collection.JavaConverters._
-import ml.dmlc.mxnet.Symbol
-import ml.dmlc.mxnet.DataIter
-import ml.dmlc.mxnet.DataBatch
-import ml.dmlc.mxnet.NDArray
-import ml.dmlc.mxnet.Shape
-import ml.dmlc.mxnet.EvalMetric
-import ml.dmlc.mxnet.Context
-import ml.dmlc.mxnet.Xavier
-import ml.dmlc.mxnet.optimizer.RMSProp
+import org.apache.mxnet.Symbol
+import org.apache.mxnet.DataIter
+import org.apache.mxnet.DataBatch
+import org.apache.mxnet.NDArray
+import org.apache.mxnet.Shape
+import org.apache.mxnet.EvalMetric
+import org.apache.mxnet.Context
+import org.apache.mxnet.Xavier
+import org.apache.mxnet.optimizer.RMSProp
 
 import scala.collection.immutable.ListMap
 
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/ModelVgg19.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/ModelVgg19.scala
similarity index 97%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/ModelVgg19.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/ModelVgg19.scala
index 0af6c7c..4d9aa35 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/ModelVgg19.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/ModelVgg19.scala
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.neuralstyle
+package org.apache.mxnetexamples.neuralstyle
 
-import ml.dmlc.mxnet.Context
-import ml.dmlc.mxnet.Executor
-import ml.dmlc.mxnet.NDArray
-import ml.dmlc.mxnet.Symbol
-import ml.dmlc.mxnet.Shape
+import org.apache.mxnet.Context
+import org.apache.mxnet.Executor
+import org.apache.mxnet.NDArray
+import org.apache.mxnet.Symbol
+import org.apache.mxnet.Shape
 
 /**
  * Definition for the neuralstyle network and initialize it with pretrained weight
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/NeuralStyle.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/NeuralStyle.scala
similarity index 99%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/NeuralStyle.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/NeuralStyle.scala
index 4ac9aa5..d99ea64 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/NeuralStyle.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/NeuralStyle.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.neuralstyle
+package org.apache.mxnetexamples.neuralstyle
 
-import ml.dmlc.mxnet._
+import org.apache.mxnet._
 import org.kohsuke.args4j.{CmdLineParser, Option}
 import org.slf4j.LoggerFactory
 import scala.collection.JavaConverters._
@@ -26,7 +26,7 @@ import java.io.File
 import com.sksamuel.scrimage.Pixel
 import com.sksamuel.scrimage.filter.GaussianBlurFilter
 import com.sksamuel.scrimage.nio.JpegWriter
-import ml.dmlc.mxnet.optimizer.Adam
+import org.apache.mxnet.optimizer.Adam
 
 /**
  * An Implementation of the paper A Neural Algorithm of Artistic Style
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/end2end/Basic.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/Basic.scala
similarity index 95%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/end2end/Basic.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/Basic.scala
index d9af321..c604f84 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/end2end/Basic.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/Basic.scala
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.neuralstyle.end2end
+package org.apache.mxnetexamples.neuralstyle.end2end
 
-import ml.dmlc.mxnet.Shape
-import ml.dmlc.mxnet.Context
-import ml.dmlc.mxnet.NDArray
-import ml.dmlc.mxnet.Symbol
-import ml.dmlc.mxnet.Initializer
+import org.apache.mxnet.Shape
+import org.apache.mxnet.Context
+import org.apache.mxnet.NDArray
+import org.apache.mxnet.Symbol
+import org.apache.mxnet.Initializer
 import org.slf4j.LoggerFactory
 
 /**
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/end2end/BoostInference.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/BoostInference.scala
similarity index 96%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/end2end/BoostInference.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/BoostInference.scala
index 36aa620..0feb73d 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/end2end/BoostInference.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/BoostInference.scala
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.neuralstyle.end2end
+package org.apache.mxnetexamples.neuralstyle.end2end
 
 import org.slf4j.LoggerFactory
 import org.kohsuke.args4j.{CmdLineParser, Option}
 import scala.collection.JavaConverters._
-import ml.dmlc.mxnet.Shape
-import ml.dmlc.mxnet.Context
+import org.apache.mxnet.Shape
+import org.apache.mxnet.Context
 
 /**
  * @author Depeng Liang
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/end2end/BoostTrain.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/BoostTrain.scala
similarity index 95%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/end2end/BoostTrain.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/BoostTrain.scala
index 844adec..8b5549d 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/end2end/BoostTrain.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/BoostTrain.scala
@@ -15,22 +15,22 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.neuralstyle.end2end
+package org.apache.mxnetexamples.neuralstyle.end2end
 
 import org.slf4j.LoggerFactory
 import org.kohsuke.args4j.{CmdLineParser, Option}
 import scala.collection.JavaConverters._
-import ml.dmlc.mxnet.NDArray
-import ml.dmlc.mxnet.Shape
-import ml.dmlc.mxnet.Context
-import ml.dmlc.mxnet.DataBatch
-import ml.dmlc.mxnet.Symbol
-import ml.dmlc.mxnet.Executor
-import ml.dmlc.mxnet.optimizer.SGD
+import org.apache.mxnet.NDArray
+import org.apache.mxnet.Shape
+import org.apache.mxnet.Context
+import org.apache.mxnet.DataBatch
+import org.apache.mxnet.Symbol
+import org.apache.mxnet.Executor
+import org.apache.mxnet.optimizer.SGD
 import java.io.File
 import javax.imageio.ImageIO
 import scala.util.Random
-import ml.dmlc.mxnet.optimizer.Adam
+import org.apache.mxnet.optimizer.Adam
 
 /**
  * @author Depeng Liang
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/end2end/DataProcessing.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/DataProcessing.scala
similarity index 95%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/end2end/DataProcessing.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/DataProcessing.scala
index d02436f..94d05bb 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/end2end/DataProcessing.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/DataProcessing.scala
@@ -15,16 +15,16 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.neuralstyle.end2end
+package org.apache.mxnetexamples.neuralstyle.end2end
 
 import com.sksamuel.scrimage.Image
 import com.sksamuel.scrimage.Pixel
 import com.sksamuel.scrimage.filter.GaussianBlurFilter
 import com.sksamuel.scrimage.nio.JpegWriter
-import ml.dmlc.mxnet.Context
-import ml.dmlc.mxnet.NDArray
+import org.apache.mxnet.Context
+import org.apache.mxnet.NDArray
 import java.io.File
-import ml.dmlc.mxnet.Shape
+import org.apache.mxnet.Shape
 import scala.util.Random
 
 /**
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/end2end/GenV3.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/GenV3.scala
similarity index 95%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/end2end/GenV3.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/GenV3.scala
index f4601d1..b90e9f0 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/end2end/GenV3.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/GenV3.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.neuralstyle.end2end
+package org.apache.mxnetexamples.neuralstyle.end2end
 
-import ml.dmlc.mxnet.Symbol
-import ml.dmlc.mxnet.Shape
-import ml.dmlc.mxnet.Context
-import ml.dmlc.mxnet.Xavier
+import org.apache.mxnet.Symbol
+import org.apache.mxnet.Shape
+import org.apache.mxnet.Context
+import org.apache.mxnet.Xavier
 
 /**
  * @author Depeng Liang
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/end2end/GenV4.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/GenV4.scala
similarity index 96%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/end2end/GenV4.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/GenV4.scala
index ee1e238..876a052 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/end2end/GenV4.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/GenV4.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.neuralstyle.end2end
+package org.apache.mxnetexamples.neuralstyle.end2end
 
-import ml.dmlc.mxnet.Symbol
-import ml.dmlc.mxnet.Shape
-import ml.dmlc.mxnet.Context
-import ml.dmlc.mxnet.Xavier
+import org.apache.mxnet.Symbol
+import org.apache.mxnet.Shape
+import org.apache.mxnet.Context
+import org.apache.mxnet.Xavier
 
 /**
  * @author Depeng Liang
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/end2end/ModelVgg19.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/ModelVgg19.scala
similarity index 97%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/end2end/ModelVgg19.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/ModelVgg19.scala
index 518eb35..6044847 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/end2end/ModelVgg19.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/ModelVgg19.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.neuralstyle.end2end
+package org.apache.mxnetexamples.neuralstyle.end2end
 
-import ml.dmlc.mxnet.Executor
-import ml.dmlc.mxnet.NDArray
-import ml.dmlc.mxnet.Symbol
+import org.apache.mxnet.Executor
+import org.apache.mxnet.NDArray
+import org.apache.mxnet.Symbol
 
 
 object ModelVgg19 {
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/end2end/Module.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/Module.scala
similarity index 93%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/end2end/Module.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/Module.scala
index 313a80a..d681b16 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/neuralstyle/end2end/Module.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/neuralstyle/end2end/Module.scala
@@ -15,18 +15,18 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.neuralstyle.end2end
+package org.apache.mxnetexamples.neuralstyle.end2end
 
-import ml.dmlc.mxnet.Context
+import org.apache.mxnet.Context
 import org.slf4j.LoggerFactory
-import ml.dmlc.mxnet.Symbol
-import ml.dmlc.mxnet.NDArray
-import ml.dmlc.mxnet.Optimizer
-import ml.dmlc.mxnet.Executor
-import ml.dmlc.mxnet.Shape
-import ml.dmlc.mxnet.Uniform
-import ml.dmlc.mxnet.Initializer
-import ml.dmlc.mxnet.DataBatch
+import org.apache.mxnet.Symbol
+import org.apache.mxnet.NDArray
+import org.apache.mxnet.Optimizer
+import org.apache.mxnet.Executor
+import org.apache.mxnet.Shape
+import org.apache.mxnet.Uniform
+import org.apache.mxnet.Initializer
+import org.apache.mxnet.DataBatch
 
 /**
  * @author Depeng Liang
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/profiler/ProfilerMatMul.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/profiler/ProfilerMatMul.scala
similarity index 94%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/profiler/ProfilerMatMul.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/profiler/ProfilerMatMul.scala
index 9551e4a..4505531 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/profiler/ProfilerMatMul.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/profiler/ProfilerMatMul.scala
@@ -15,17 +15,17 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.profiler
+package org.apache.mxnetexamples.profiler
 
 import org.kohsuke.args4j.{CmdLineParser, Option}
 import org.slf4j.LoggerFactory
 import scala.collection.JavaConverters._
-import ml.dmlc.mxnet.Context
-import ml.dmlc.mxnet.Profiler
+import org.apache.mxnet.Context
+import org.apache.mxnet.Profiler
 import java.io.File
-import ml.dmlc.mxnet.Symbol
-import ml.dmlc.mxnet.Shape
-import ml.dmlc.mxnet.Random
+import org.apache.mxnet.Symbol
+import org.apache.mxnet.Shape
+import org.apache.mxnet.Random
 
 /**
  * @author Depeng Liang
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/profiler/ProfilerNDArray.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/profiler/ProfilerNDArray.scala
similarity index 97%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/profiler/ProfilerNDArray.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/profiler/ProfilerNDArray.scala
index d16fbb1..8616b89 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/profiler/ProfilerNDArray.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/profiler/ProfilerNDArray.scala
@@ -15,17 +15,17 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.profiler
+package org.apache.mxnetexamples.profiler
 
 import org.kohsuke.args4j.{CmdLineParser, Option}
 import org.slf4j.LoggerFactory
 import scala.collection.JavaConverters._
 import java.io.File
-import ml.dmlc.mxnet.Profiler
-import ml.dmlc.mxnet.Random
-import ml.dmlc.mxnet.Shape
-import ml.dmlc.mxnet.NDArray
-import ml.dmlc.mxnet.Context
+import org.apache.mxnet.Profiler
+import org.apache.mxnet.Random
+import org.apache.mxnet.Shape
+import org.apache.mxnet.NDArray
+import org.apache.mxnet.Context
 
 /**
  * @author Depeng Liang
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/rnn/BucketIo.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/BucketIo.scala
similarity index 98%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/rnn/BucketIo.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/BucketIo.scala
index f0cf707..f0eae68 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/rnn/BucketIo.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/BucketIo.scala
@@ -16,9 +16,9 @@
  */
 
 
-package ml.dmlc.mxnetexamples.rnn
+package org.apache.mxnetexamples.rnn
 
-import ml.dmlc.mxnet.{DataBatch, DataIter, NDArray, Shape}
+import org.apache.mxnet.{DataBatch, DataIter, NDArray, Shape}
 import org.slf4j.LoggerFactory
 import scala.collection.immutable.ListMap
 import scala.collection.mutable.ArrayBuffer
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/rnn/Lstm.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/Lstm.scala
similarity index 99%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/rnn/Lstm.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/Lstm.scala
index 7804fd0..bf29a47 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/rnn/Lstm.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/Lstm.scala
@@ -16,9 +16,9 @@
  */
 
 
-package ml.dmlc.mxnetexamples.rnn
+package org.apache.mxnetexamples.rnn
 
-import ml.dmlc.mxnet.Symbol
+import org.apache.mxnet.Symbol
 
 import scala.collection.mutable.ArrayBuffer
 
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/rnn/LstmBucketing.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/LstmBucketing.scala
similarity index 95%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/rnn/LstmBucketing.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/LstmBucketing.scala
index 303c2fb..f3fe764 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/rnn/LstmBucketing.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/LstmBucketing.scala
@@ -16,18 +16,18 @@
  */
 
 
-package ml.dmlc.mxnetexamples.rnn
+package org.apache.mxnetexamples.rnn
 
-import ml.dmlc.mxnet.Callback.Speedometer
-import ml.dmlc.mxnet._
+import org.apache.mxnet.Callback.Speedometer
+import org.apache.mxnet._
 import BucketIo.BucketSentenceIter
-import ml.dmlc.mxnet.optimizer.SGD
+import org.apache.mxnet.optimizer.SGD
 import org.kohsuke.args4j.{CmdLineParser, Option}
 import org.slf4j.{Logger, LoggerFactory}
 
 import scala.collection.JavaConverters._
-import ml.dmlc.mxnet.module.BucketingModule
-import ml.dmlc.mxnet.module.FitParams
+import org.apache.mxnet.module.BucketingModule
+import org.apache.mxnet.module.FitParams
 
 /**
  * Bucketing LSTM examples
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/rnn/RnnModel.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/RnnModel.scala
similarity index 94%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/rnn/RnnModel.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/RnnModel.scala
index 5f919f1..3cd79f4 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/rnn/RnnModel.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/RnnModel.scala
@@ -16,12 +16,12 @@
  */
 
 
-package ml.dmlc.mxnetexamples.rnn
+package org.apache.mxnetexamples.rnn
 
-import ml.dmlc.mxnet.Context
-import ml.dmlc.mxnet.NDArray
-import ml.dmlc.mxnet.Shape
-import ml.dmlc.mxnet.Symbol
+import org.apache.mxnet.Context
+import org.apache.mxnet.NDArray
+import org.apache.mxnet.Shape
+import org.apache.mxnet.Symbol
 
 object RnnModel {
   class LSTMInferenceModel(numLstmLayer: Int, inputSize: Int, numHidden: Int,
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/rnn/TestCharRnn.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/TestCharRnn.scala
similarity index 98%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/rnn/TestCharRnn.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/TestCharRnn.scala
index 0d989a0..243b70c 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/rnn/TestCharRnn.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/TestCharRnn.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.rnn
+package org.apache.mxnetexamples.rnn
 
-import ml.dmlc.mxnet._
+import org.apache.mxnet._
 import org.kohsuke.args4j.{CmdLineParser, Option}
 import org.slf4j.LoggerFactory
 import scala.collection.JavaConverters._
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/rnn/TrainCharRnn.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/TrainCharRnn.scala
similarity index 98%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/rnn/TrainCharRnn.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/TrainCharRnn.scala
index 2fe2780..3afb936 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/rnn/TrainCharRnn.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/TrainCharRnn.scala
@@ -15,13 +15,13 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.rnn
+package org.apache.mxnetexamples.rnn
 
-import ml.dmlc.mxnet._
+import org.apache.mxnet._
 import org.kohsuke.args4j.{CmdLineParser, Option}
 import org.slf4j.LoggerFactory
 import scala.collection.JavaConverters._
-import ml.dmlc.mxnet.optimizer.Adam
+import org.apache.mxnet.optimizer.Adam
 
 /**
  * Follows the demo, to train the char rnn:
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/rnn/Utils.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/Utils.scala
similarity index 95%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/rnn/Utils.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/Utils.scala
index b4cb14a..c290230 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/rnn/Utils.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/rnn/Utils.scala
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.rnn
+package org.apache.mxnetexamples.rnn
 
 import scala.io.Source
-import ml.dmlc.mxnet.EvalMetric
-import ml.dmlc.mxnet.NDArray
-import ml.dmlc.mxnet.EpochEndCallback
-import ml.dmlc.mxnet.Model
-import ml.dmlc.mxnet.Symbol
+import org.apache.mxnet.EvalMetric
+import org.apache.mxnet.NDArray
+import org.apache.mxnet.EpochEndCallback
+import org.apache.mxnet.Model
+import org.apache.mxnet.Symbol
 import scala.util.Random
 
 /**
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/visualization/AlexNet.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/visualization/AlexNet.scala
similarity index 97%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/visualization/AlexNet.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/visualization/AlexNet.scala
index c68bc90..108439d 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/visualization/AlexNet.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/visualization/AlexNet.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.visualization
+package org.apache.mxnetexamples.visualization
 
-import ml.dmlc.mxnet.Symbol
+import org.apache.mxnet.Symbol
 
 /**
  * @author Depeng Liang
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/visualization/ExampleVis.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/visualization/ExampleVis.scala
similarity index 95%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/visualization/ExampleVis.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/visualization/ExampleVis.scala
index af23c8a..2808852 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/visualization/ExampleVis.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/visualization/ExampleVis.scala
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.visualization
+package org.apache.mxnetexamples.visualization
 
 import org.kohsuke.args4j.{CmdLineParser, Option}
 import org.slf4j.LoggerFactory
 import scala.collection.JavaConverters._
 import scala.util.parsing.json._
-import ml.dmlc.mxnet.Shape
-import ml.dmlc.mxnet.Symbol
-import ml.dmlc.mxnet.Visualization
+import org.apache.mxnet.Shape
+import org.apache.mxnet.Symbol
+import org.apache.mxnet.Visualization
 
 /**
  * @author Depeng Liang
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/visualization/GoogleNet.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/visualization/GoogleNet.scala
similarity index 98%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/visualization/GoogleNet.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/visualization/GoogleNet.scala
index 160e918..73bff4d 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/visualization/GoogleNet.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/visualization/GoogleNet.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.visualization
+package org.apache.mxnetexamples.visualization
 
-import ml.dmlc.mxnet.Symbol
+import org.apache.mxnet.Symbol
 
 /**
  * @author Depeng Liang
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/visualization/Inception_BN.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/visualization/Inception_BN.scala
similarity index 98%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/visualization/Inception_BN.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/visualization/Inception_BN.scala
index 37ebc3c..0956957 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/visualization/Inception_BN.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/visualization/Inception_BN.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.visualization
+package org.apache.mxnetexamples.visualization
 
-import ml.dmlc.mxnet.Symbol
+import org.apache.mxnet.Symbol
 
 /**
  * @author Depeng Liang
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/visualization/Inception_V3.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/visualization/Inception_V3.scala
similarity index 99%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/visualization/Inception_V3.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/visualization/Inception_V3.scala
index 8423349..8fc8f4a 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/visualization/Inception_V3.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/visualization/Inception_V3.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.visualization
+package org.apache.mxnetexamples.visualization
 
-import ml.dmlc.mxnet.Symbol
+import org.apache.mxnet.Symbol
 
 /**
  * @author Depeng Liang
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/visualization/LeNet.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/visualization/LeNet.scala
similarity index 96%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/visualization/LeNet.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/visualization/LeNet.scala
index de53d4a..9bc82b8 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/visualization/LeNet.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/visualization/LeNet.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.visualization
+package org.apache.mxnetexamples.visualization
 
-import ml.dmlc.mxnet.Symbol
+import org.apache.mxnet.Symbol
 
 /**
  * @author Depeng Liang
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/visualization/ResNet_Small.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/visualization/ResNet_Small.scala
similarity index 98%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/visualization/ResNet_Small.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/visualization/ResNet_Small.scala
index 6118dae..42413d2 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/visualization/ResNet_Small.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/visualization/ResNet_Small.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.visualization
+package org.apache.mxnetexamples.visualization
 
-import ml.dmlc.mxnet.Symbol
+import org.apache.mxnet.Symbol
 
 /**
  * @author Depeng Liang
diff --git a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/visualization/VGG.scala b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/visualization/VGG.scala
similarity index 98%
rename from scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/visualization/VGG.scala
rename to scala-package/examples/src/main/scala/org/apache/mxnetexamples/visualization/VGG.scala
index a48fc80..abfb2ef 100644
--- a/scala-package/examples/src/main/scala/ml/dmlc/mxnetexamples/visualization/VGG.scala
+++ b/scala-package/examples/src/main/scala/org/apache/mxnetexamples/visualization/VGG.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnetexamples.visualization
+package org.apache.mxnetexamples.visualization
 
-import ml.dmlc.mxnet.Symbol
+import org.apache.mxnet.Symbol
 
 /**
  * @author Depeng Liang
diff --git a/scala-package/init-native/linux-x86_64/pom.xml b/scala-package/init-native/linux-x86_64/pom.xml
index 0d15a6c..6bc4619 100644
--- a/scala-package/init-native/linux-x86_64/pom.xml
+++ b/scala-package/init-native/linux-x86_64/pom.xml
@@ -4,7 +4,7 @@
          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>
-    <groupId>ml.dmlc.mxnet</groupId>
+    <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-scala-init-native-parent</artifactId>
     <version>1.0.1-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
@@ -18,7 +18,7 @@
 
   <dependencies>
     <dependency>
-      <groupId>ml.dmlc.mxnet</groupId>
+      <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-init_${scala.binary.version}</artifactId>
       <version>1.0.1-SNAPSHOT</version>
       <type>jar</type>
@@ -47,7 +47,7 @@
             <source>
               <directory>../src/main/native</directory>
               <fileNames>
-                <fileName>ml_dmlc_mxnet_init_native_c_api.cc</fileName>
+                <fileName>org_apache_mxnet_init_native_c_api.cc</fileName>
               </fileNames>
             </source>
           </sources>
@@ -83,9 +83,9 @@
               <javahProvider>default</javahProvider>
               <javahOutputDirectory>${project.build.directory}/custom-javah</javahOutputDirectory>
               <workingDirectory>${basedir}</workingDirectory>
-              <javahOutputFileName>ml_dmlc_mxnet_init_native_c_api.h</javahOutputFileName>
+              <javahOutputFileName>org_apache_mxnet_init_native_c_api.h</javahOutputFileName>
               <javahClassNames>
-                <javahClassName>ml.dmlc.mxnet.init.LibInfo</javahClassName>
+                <javahClassName>org.apache.mxnet.init.LibInfo</javahClassName>
               </javahClassNames>
             </configuration>
             <goals>
diff --git a/scala-package/init-native/osx-x86_64/pom.xml b/scala-package/init-native/osx-x86_64/pom.xml
index e2af2de..3e4bb4f 100644
--- a/scala-package/init-native/osx-x86_64/pom.xml
+++ b/scala-package/init-native/osx-x86_64/pom.xml
@@ -4,7 +4,7 @@
          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>
-    <groupId>ml.dmlc.mxnet</groupId>
+    <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-scala-init-native-parent</artifactId>
     <version>1.0.1-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
@@ -18,7 +18,7 @@
 
   <dependencies>
     <dependency>
-      <groupId>ml.dmlc.mxnet</groupId>
+      <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-init_${scala.binary.version}</artifactId>
       <version>1.0.1-SNAPSHOT</version>
       <type>jar</type>
@@ -47,7 +47,7 @@
             <source>
               <directory>../src/main/native</directory>
               <fileNames>
-                <fileName>ml_dmlc_mxnet_init_native_c_api.cc</fileName>
+                <fileName>org_apache_mxnet_init_native_c_api.cc</fileName>
               </fileNames>
             </source>
           </sources>
@@ -82,9 +82,9 @@
               <javahProvider>default</javahProvider>
               <javahOutputDirectory>${project.build.directory}/custom-javah</javahOutputDirectory>
               <workingDirectory>${basedir}</workingDirectory>
-              <javahOutputFileName>ml_dmlc_mxnet_init_native_c_api.h</javahOutputFileName>
+              <javahOutputFileName>org_apache_mxnet_init_native_c_api.h</javahOutputFileName>
               <javahClassNames>
-                <javahClassName>ml.dmlc.mxnet.init.LibInfo</javahClassName>
+                <javahClassName>org.apache.mxnet.init.LibInfo</javahClassName>
               </javahClassNames>
             </configuration>
             <goals>
diff --git a/scala-package/init-native/pom.xml b/scala-package/init-native/pom.xml
index 7ca19f1..7114e4c 100644
--- a/scala-package/init-native/pom.xml
+++ b/scala-package/init-native/pom.xml
@@ -4,7 +4,7 @@
          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>
-    <groupId>ml.dmlc.mxnet</groupId>
+    <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-parent_2.11</artifactId>
     <version>1.0.1-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
diff --git a/scala-package/init-native/src/main/native/ml_dmlc_mxnet_init_native_c_api.cc b/scala-package/init-native/src/main/native/org_apache_mxnet_init_native_c_api.cc
similarity index 86%
rename from scala-package/init-native/src/main/native/ml_dmlc_mxnet_init_native_c_api.cc
rename to scala-package/init-native/src/main/native/org_apache_mxnet_init_native_c_api.cc
index 1905189..b689521 100644
--- a/scala-package/init-native/src/main/native/ml_dmlc_mxnet_init_native_c_api.cc
+++ b/scala-package/init-native/src/main/native/org_apache_mxnet_init_native_c_api.cc
@@ -19,14 +19,14 @@
 
 /*!
  *  Copyright (c) 2015 by Contributors
- * \file ml_dmlc_mxnet_native_c_api.cc
+ * \file org_apache_mxnet_native_c_api.cc
  * \brief JNI function implementations
  */
-#include "ml_dmlc_mxnet_init_native_c_api.h"  // generated by javah
+#include "org_apache_mxnet_init_native_c_api.h"  // generated by javah
 #include <nnvm/c_api.h>
 #include <mxnet/c_api.h>
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_init_LibInfo_mxSymbolListAtomicSymbolCreators
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_init_LibInfo_mxSymbolListAtomicSymbolCreators
   (JNIEnv *env, jobject obj, jobject symbolList) {
   mx_uint outSize;
   AtomicSymbolCreator *outArray;
@@ -47,7 +47,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_init_LibInfo_mxSymbolListAtomicSymbolC
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_init_LibInfo_mxSymbolGetAtomicSymbolInfo
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_init_LibInfo_mxSymbolGetAtomicSymbolInfo
   (JNIEnv *env, jobject obj, jlong symbolPtr, jobject name, jobject desc, jobject numArgs,
     jobject argNames, jobject argTypes, jobject argDescs, jobject keyVarNumArgs) {
 
@@ -64,10 +64,10 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_init_LibInfo_mxSymbolGetAtomicSymbolIn
                                         &cArgNames, &cArgTypes, &cArgDescs,
                                         &cKeyVarNumArgs);
 
-  jclass refIntClass = env->FindClass("ml/dmlc/mxnet/init/Base$RefInt");
+  jclass refIntClass = env->FindClass("org/apache/mxnet/init/Base$RefInt");
   jfieldID valueInt = env->GetFieldID(refIntClass, "value", "I");
 
-  jclass refStringClass = env->FindClass("ml/dmlc/mxnet/init/Base$RefString");
+  jclass refStringClass = env->FindClass("org/apache/mxnet/init/Base$RefString");
   jfieldID valueStr = env->GetFieldID(refStringClass, "value", "Ljava/lang/String;");
 
   // scala.collection.mutable.ListBuffer append method
@@ -88,7 +88,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_init_LibInfo_mxSymbolGetAtomicSymbolIn
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_init_LibInfo_mxListAllOpNames
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_init_LibInfo_mxListAllOpNames
   (JNIEnv *env, jobject obj, jobject nameList) {
   mx_uint outSize;
   const char **outArray;
@@ -104,7 +104,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_init_LibInfo_mxListAllOpNames
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_init_LibInfo_nnGetOpHandle
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_init_LibInfo_nnGetOpHandle
   (JNIEnv *env, jobject obj, jstring jopname, jobject jhandle) {
 
   OpHandle handle;
@@ -112,7 +112,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_init_LibInfo_nnGetOpHandle
   int ret = NNGetOpHandle(opname, &handle);
   env->ReleaseStringUTFChars(jopname, opname);
 
-  jclass refClass = env->FindClass("ml/dmlc/mxnet/init/Base$RefLong");
+  jclass refClass = env->FindClass("org/apache/mxnet/init/Base$RefLong");
   jfieldID refFid = env->GetFieldID(refClass, "value", "J");
   env->SetLongField(jhandle, refFid, reinterpret_cast<jlong>(handle));
 
diff --git a/scala-package/init/pom.xml b/scala-package/init/pom.xml
index 972b894..028bf46 100644
--- a/scala-package/init/pom.xml
+++ b/scala-package/init/pom.xml
@@ -4,7 +4,7 @@
          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>
-    <groupId>ml.dmlc.mxnet</groupId>
+    <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-parent_2.11</artifactId>
     <version>1.0.1-SNAPSHOT</version>
 <!--  <relativePath>../pom.xml</relativePath>-->
diff --git a/scala-package/init/src/main/scala/ml/dmlc/mxnet/init/Base.scala b/scala-package/init/src/main/scala/org/apache/mxnet/init/Base.scala
similarity index 98%
rename from scala-package/init/src/main/scala/ml/dmlc/mxnet/init/Base.scala
rename to scala-package/init/src/main/scala/org/apache/mxnet/init/Base.scala
index 13b82bc..7af2e05 100644
--- a/scala-package/init/src/main/scala/ml/dmlc/mxnet/init/Base.scala
+++ b/scala-package/init/src/main/scala/org/apache/mxnet/init/Base.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.init
+package org.apache.mxnet.init
 
 object Base {
   tryLoadInitLibrary()
diff --git a/scala-package/init/src/main/scala/ml/dmlc/mxnet/init/LibInfo.scala b/scala-package/init/src/main/scala/org/apache/mxnet/init/LibInfo.scala
similarity index 96%
rename from scala-package/init/src/main/scala/ml/dmlc/mxnet/init/LibInfo.scala
rename to scala-package/init/src/main/scala/org/apache/mxnet/init/LibInfo.scala
index 74e8abe..7bd0c70 100644
--- a/scala-package/init/src/main/scala/ml/dmlc/mxnet/init/LibInfo.scala
+++ b/scala-package/init/src/main/scala/org/apache/mxnet/init/LibInfo.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.init
+package org.apache.mxnet.init
 
-import ml.dmlc.mxnet.init.Base._
+import org.apache.mxnet.init.Base._
 
 import scala.collection.mutable.ListBuffer
 
diff --git a/scala-package/macros/pom.xml b/scala-package/macros/pom.xml
index dea908a..aa629e5 100644
--- a/scala-package/macros/pom.xml
+++ b/scala-package/macros/pom.xml
@@ -4,7 +4,7 @@
          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>
-    <groupId>ml.dmlc.mxnet</groupId>
+    <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-parent_2.11</artifactId>
     <version>1.0.1-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
@@ -39,13 +39,13 @@
 
   <dependencies>
     <dependency>
-      <groupId>ml.dmlc.mxnet</groupId>
+      <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-init_${scala.binary.version}</artifactId>
       <version>1.0.1-SNAPSHOT</version>
       <scope>provided</scope>
     </dependency>
     <dependency>
-      <groupId>ml.dmlc.mxnet</groupId>
+      <groupId>org.apache.mxnet</groupId>
       <artifactId>libmxnet-init-scala-${platform}</artifactId>
       <version>1.0.1-SNAPSHOT</version>
       <scope>provided</scope>
diff --git a/scala-package/macros/src/main/scala/ml/dmlc/mxnet/NDArrayMacro.scala b/scala-package/macros/src/main/scala/org/apache/mxnet/NDArrayMacro.scala
similarity index 97%
rename from scala-package/macros/src/main/scala/ml/dmlc/mxnet/NDArrayMacro.scala
rename to scala-package/macros/src/main/scala/org/apache/mxnet/NDArrayMacro.scala
index 1be9a8d..c26d14c 100644
--- a/scala-package/macros/src/main/scala/ml/dmlc/mxnet/NDArrayMacro.scala
+++ b/scala-package/macros/src/main/scala/org/apache/mxnet/NDArrayMacro.scala
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
-import ml.dmlc.mxnet.init.Base._
-import ml.dmlc.mxnet.utils.OperatorBuildUtils
+import org.apache.mxnet.init.Base._
+import org.apache.mxnet.utils.OperatorBuildUtils
 
 import scala.annotation.StaticAnnotation
 import scala.collection.mutable.ListBuffer
@@ -53,7 +53,7 @@ private[mxnet] object NDArrayMacro {
     }
 
     val AST_NDARRAY_TYPE = Select(Select(Select(
-      Ident(TermName("ml")), TermName("dmlc")), TermName("mxnet")), TypeName("NDArray"))
+      Ident(TermName("org")), TermName("apache")), TermName("mxnet")), TypeName("NDArray"))
     val AST_TYPE_MAP_STRING_ANY = AppliedTypeTree(Ident(TypeName("Map")),
       List(Ident(TypeName("String")), Ident(TypeName("Any"))))
     val AST_TYPE_ANY_VARARG = AppliedTypeTree(
diff --git a/scala-package/macros/src/main/scala/ml/dmlc/mxnet/SymbolMacro.scala b/scala-package/macros/src/main/scala/org/apache/mxnet/SymbolMacro.scala
similarity index 97%
rename from scala-package/macros/src/main/scala/ml/dmlc/mxnet/SymbolMacro.scala
rename to scala-package/macros/src/main/scala/org/apache/mxnet/SymbolMacro.scala
index 730d424..b6ddaaf 100644
--- a/scala-package/macros/src/main/scala/ml/dmlc/mxnet/SymbolMacro.scala
+++ b/scala-package/macros/src/main/scala/org/apache/mxnet/SymbolMacro.scala
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet
+package org.apache.mxnet
 
 import scala.annotation.StaticAnnotation
 import scala.collection.mutable.ListBuffer
 import scala.language.experimental.macros
 import scala.reflect.macros.blackbox
 
-import ml.dmlc.mxnet.init.Base._
-import ml.dmlc.mxnet.utils.OperatorBuildUtils
+import org.apache.mxnet.init.Base._
+import org.apache.mxnet.utils.OperatorBuildUtils
 
 private[mxnet] class AddSymbolFunctions(isContrib: Boolean) extends StaticAnnotation {
   private[mxnet] def macroTransform(annottees: Any*) = macro SymbolImplMacros.addDefs
@@ -62,7 +62,7 @@ private[mxnet] object SymbolImplMacros {
         TypeName("<repeated>")
       ),
       List(Select(Select(Select(
-        Ident(TermName("ml")), TermName("dmlc")), TermName("mxnet")), TypeName("Symbol")))
+        Ident(TermName("org")), TermName("apache")), TermName("mxnet")), TypeName("Symbol")))
     )
 
     val functionDefs = newSymbolFunctions map { case (funcName, funcProp) =>
diff --git a/scala-package/macros/src/main/scala/ml/dmlc/mxnet/utils/OperatorBuildUtils.scala b/scala-package/macros/src/main/scala/org/apache/mxnet/utils/OperatorBuildUtils.scala
similarity index 97%
rename from scala-package/macros/src/main/scala/ml/dmlc/mxnet/utils/OperatorBuildUtils.scala
rename to scala-package/macros/src/main/scala/org/apache/mxnet/utils/OperatorBuildUtils.scala
index 38ebebb..383c68c 100644
--- a/scala-package/macros/src/main/scala/ml/dmlc/mxnet/utils/OperatorBuildUtils.scala
+++ b/scala-package/macros/src/main/scala/org/apache/mxnet/utils/OperatorBuildUtils.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.utils
+package org.apache.mxnet.utils
 
 private[mxnet] object OperatorBuildUtils {
   // Convert ctypes returned doc string information into parameters docstring.
diff --git a/scala-package/native/linux-x86_64-cpu/pom.xml b/scala-package/native/linux-x86_64-cpu/pom.xml
index 3bcb012..61e4453 100644
--- a/scala-package/native/linux-x86_64-cpu/pom.xml
+++ b/scala-package/native/linux-x86_64-cpu/pom.xml
@@ -4,7 +4,7 @@
          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>
-    <groupId>ml.dmlc.mxnet</groupId>
+    <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-scala-native-parent</artifactId>
     <version>1.0.1-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
@@ -18,7 +18,7 @@
 
   <dependencies>
     <dependency>
-      <groupId>ml.dmlc.mxnet</groupId>
+      <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-core_${scala.binary.version}</artifactId>
       <version>1.0.1-SNAPSHOT</version>
       <type>jar</type>
@@ -47,7 +47,7 @@
             <source>
               <directory>../src/main/native</directory>
               <fileNames>
-                <fileName>ml_dmlc_mxnet_native_c_api.cc</fileName>
+                <fileName>org_apache_mxnet_native_c_api.cc</fileName>
               </fileNames>
             </source>
           </sources>
@@ -83,9 +83,9 @@
               <javahProvider>default</javahProvider>
               <javahOutputDirectory>${project.build.directory}/custom-javah</javahOutputDirectory>
               <workingDirectory>${basedir}</workingDirectory>
-              <javahOutputFileName>ml_dmlc_mxnet_native_c_api.h</javahOutputFileName>
+              <javahOutputFileName>org_apache_mxnet_native_c_api.h</javahOutputFileName>
               <javahClassNames>
-                <javahClassName>ml.dmlc.mxnet.LibInfo</javahClassName>
+                <javahClassName>org.apache.mxnet.LibInfo</javahClassName>
               </javahClassNames>
             </configuration>
             <goals>
diff --git a/scala-package/native/linux-x86_64-gpu/pom.xml b/scala-package/native/linux-x86_64-gpu/pom.xml
index 85ff4d2..333b591 100644
--- a/scala-package/native/linux-x86_64-gpu/pom.xml
+++ b/scala-package/native/linux-x86_64-gpu/pom.xml
@@ -4,7 +4,7 @@
          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>
-    <groupId>ml.dmlc.mxnet</groupId>
+    <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-scala-native-parent</artifactId>
     <version>1.0.1-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
@@ -18,7 +18,7 @@
 
   <dependencies>
     <dependency>
-      <groupId>ml.dmlc.mxnet</groupId>
+      <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-core_${scala.binary.version}</artifactId>
       <version>1.0.1-SNAPSHOT</version>
       <type>jar</type>
@@ -47,7 +47,7 @@
             <source>
               <directory>../src/main/native</directory>
               <fileNames>
-                <fileName>ml_dmlc_mxnet_native_c_api.cc</fileName>
+                <fileName>org_apache_mxnet_native_c_api.cc</fileName>
               </fileNames>
             </source>
           </sources>
@@ -83,9 +83,9 @@
               <javahProvider>default</javahProvider>
               <javahOutputDirectory>${project.build.directory}/custom-javah</javahOutputDirectory>
               <workingDirectory>${basedir}</workingDirectory>
-              <javahOutputFileName>ml_dmlc_mxnet_native_c_api.h</javahOutputFileName>
+              <javahOutputFileName>org_apache_mxnet_native_c_api.h</javahOutputFileName>
               <javahClassNames>
-                <javahClassName>ml.dmlc.mxnet.LibInfo</javahClassName>
+                <javahClassName>org.apache.mxnet.LibInfo</javahClassName>
               </javahClassNames>
             </configuration>
             <goals>
diff --git a/scala-package/native/osx-x86_64-cpu/pom.xml b/scala-package/native/osx-x86_64-cpu/pom.xml
index 809da66..ae195fe 100644
--- a/scala-package/native/osx-x86_64-cpu/pom.xml
+++ b/scala-package/native/osx-x86_64-cpu/pom.xml
@@ -4,7 +4,7 @@
          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>
-    <groupId>ml.dmlc.mxnet</groupId>
+    <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-scala-native-parent</artifactId>
     <version>1.0.1-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
@@ -18,7 +18,7 @@
 
   <dependencies>
     <dependency>
-      <groupId>ml.dmlc.mxnet</groupId>
+      <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-core_${scala.binary.version}</artifactId>
       <version>1.0.1-SNAPSHOT</version>
       <type>jar</type>
@@ -47,7 +47,7 @@
             <source>
               <directory>../src/main/native</directory>
               <fileNames>
-                <fileName>ml_dmlc_mxnet_native_c_api.cc</fileName>
+                <fileName>org_apache_mxnet_native_c_api.cc</fileName>
               </fileNames>
             </source>
           </sources>
@@ -83,9 +83,9 @@
               <javahProvider>default</javahProvider>
               <javahOutputDirectory>${project.build.directory}/custom-javah</javahOutputDirectory>
               <workingDirectory>${basedir}</workingDirectory>
-              <javahOutputFileName>ml_dmlc_mxnet_native_c_api.h</javahOutputFileName>
+              <javahOutputFileName>org_apache_mxnet_native_c_api.h</javahOutputFileName>
               <javahClassNames>
-                <javahClassName>ml.dmlc.mxnet.LibInfo</javahClassName>
+                <javahClassName>org.apache.mxnet.LibInfo</javahClassName>
               </javahClassNames>
             </configuration>
             <goals>
diff --git a/scala-package/native/pom.xml b/scala-package/native/pom.xml
index 55fb053..ed3e20f 100644
--- a/scala-package/native/pom.xml
+++ b/scala-package/native/pom.xml
@@ -4,7 +4,7 @@
          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>
-    <groupId>ml.dmlc.mxnet</groupId>
+    <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-parent_2.11</artifactId>
     <version>1.0.1-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
diff --git a/scala-package/native/src/main/native/jni_helper_func.h b/scala-package/native/src/main/native/jni_helper_func.h
index 2ef31b2..a30e94d 100644
--- a/scala-package/native/src/main/native/jni_helper_func.h
+++ b/scala-package/native/src/main/native/jni_helper_func.h
@@ -28,7 +28,7 @@
 #define MXNET_JNICPP_MAIN_NATIVE_JNI_HELPER_FUNC_H_
 
 jlong GetLongField(JNIEnv *env, jobject obj) {
-  jclass refClass = env->FindClass("ml/dmlc/mxnet/Base$RefLong");
+  jclass refClass = env->FindClass("org/apache/mxnet/Base$RefLong");
   jfieldID refFid = env->GetFieldID(refClass, "value", "J");
   jlong ret = env->GetLongField(obj, refFid);
   env->DeleteLocalRef(refClass);
@@ -36,7 +36,7 @@ jlong GetLongField(JNIEnv *env, jobject obj) {
 }
 
 jint GetIntField(JNIEnv *env, jobject obj) {
-  jclass refClass = env->FindClass("ml/dmlc/mxnet/Base$RefInt");
+  jclass refClass = env->FindClass("org/apache/mxnet/Base$RefInt");
   jfieldID refFid = env->GetFieldID(refClass, "value", "I");
   jint ret = env->GetIntField(obj, refFid);
   env->DeleteLocalRef(refClass);
@@ -44,21 +44,21 @@ jint GetIntField(JNIEnv *env, jobject obj) {
 }
 
 void SetIntField(JNIEnv *env, jobject obj, jint value) {
-  jclass refClass = env->FindClass("ml/dmlc/mxnet/Base$RefInt");
+  jclass refClass = env->FindClass("org/apache/mxnet/Base$RefInt");
   jfieldID refFid = env->GetFieldID(refClass, "value", "I");
   env->SetIntField(obj, refFid, value);
   env->DeleteLocalRef(refClass);
 }
 
 void SetLongField(JNIEnv *env, jobject obj, jlong value) {
-  jclass refClass = env->FindClass("ml/dmlc/mxnet/Base$RefLong");
+  jclass refClass = env->FindClass("org/apache/mxnet/Base$RefLong");
   jfieldID refFid = env->GetFieldID(refClass, "value", "J");
   env->SetLongField(obj, refFid, value);
   env->DeleteLocalRef(refClass);
 }
 
 void SetStringField(JNIEnv *env, jobject obj, const char *value) {
-  jclass refClass = env->FindClass("ml/dmlc/mxnet/Base$RefString");
+  jclass refClass = env->FindClass("org/apache/mxnet/Base$RefString");
   jfieldID refFid = env->GetFieldID(refClass, "value", "Ljava/lang/String;");
   env->SetObjectField(obj, refFid, env->NewStringUTF(value));
   env->DeleteLocalRef(refClass);
diff --git a/scala-package/native/src/main/native/ml_dmlc_mxnet_native_c_api.cc b/scala-package/native/src/main/native/org_apache_mxnet_native_c_api.cc
similarity index 91%
rename from scala-package/native/src/main/native/ml_dmlc_mxnet_native_c_api.cc
rename to scala-package/native/src/main/native/org_apache_mxnet_native_c_api.cc
index f4fe93b..8cbfd4d 100644
--- a/scala-package/native/src/main/native/ml_dmlc_mxnet_native_c_api.cc
+++ b/scala-package/native/src/main/native/org_apache_mxnet_native_c_api.cc
@@ -19,10 +19,10 @@
 
 /*!
  *  Copyright (c) 2015 by Contributors
- * \file ml_dmlc_mxnet_native_c_api.cc
+ * \file org_apache_mxnet_native_c_api.cc
  * \brief JNI function implementations
  */
-#include "ml_dmlc_mxnet_native_c_api.h"  // generated by javah
+#include "org_apache_mxnet_native_c_api.h"  // generated by javah
 #include <nnvm/c_api.h>
 #include <mxnet/c_api.h>
 #include <dmlc/logging.h>
@@ -37,12 +37,12 @@
 
 JavaVM *_jvm;
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_nativeLibInit
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_nativeLibInit
   (JNIEnv *env, jobject obj) {
   return env->GetJavaVM(&_jvm);
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxListAllOpNames
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxListAllOpNames
   (JNIEnv *env, jobject obj, jobject nameList) {
   mx_uint outSize;
   const char **outArray;
@@ -58,21 +58,21 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxListAllOpNames
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_nnGetOpHandle
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_nnGetOpHandle
   (JNIEnv *env, jobject obj, jstring jopname, jobject jhandle) {
   OpHandle handle;
   const char *opname = env->GetStringUTFChars(jopname, 0);
   int ret = NNGetOpHandle(opname, &handle);
   env->ReleaseStringUTFChars(jopname, opname);
 
-  jclass refClass = env->FindClass("ml/dmlc/mxnet/Base$RefLong");
+  jclass refClass = env->FindClass("org/apache/mxnet/Base$RefLong");
   jfieldID refFid = env->GetFieldID(refClass, "value", "J");
   env->SetLongField(jhandle, refFid, reinterpret_cast<jlong>(handle));
 
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArrayCreateNone
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxNDArrayCreateNone
   (JNIEnv *env, jobject obj, jobject ndArrayHandle) {
   NDArrayHandle out;
   int ret = MXNDArrayCreateNone(&out);
@@ -80,7 +80,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArrayCreateNone
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArrayCreateEx
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxNDArrayCreateEx
   (JNIEnv *env, jobject obj, jintArray shape, jint ndim, jint devType,
     jint devId, jint delayAlloc, jint dtype, jobject ndArrayHandle) {
   jint *shapeArr = env->GetIntArrayElements(shape, NULL);
@@ -92,16 +92,16 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArrayCreateEx
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArrayWaitAll(JNIEnv *env, jobject obj) {
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxNDArrayWaitAll(JNIEnv *env, jobject obj) {
   return MXNDArrayWaitAll();
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArrayWaitToRead
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxNDArrayWaitToRead
   (JNIEnv *env, jobject obj, jlong arrayPtr) {
   return MXNDArrayWaitToRead(reinterpret_cast<NDArrayHandle>(arrayPtr));
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxListFunctions
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxListFunctions
   (JNIEnv *env, jobject obj, jobject functions) {
   jclass longCls = env->FindClass("java/lang/Long");
   jmethodID longConst = env->GetMethodID(longCls, "<init>", "(J)V");
@@ -122,7 +122,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxListFunctions
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxFuncDescribe
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxFuncDescribe
   (JNIEnv *env, jobject obj, jlong funcPtr, jobject nUsedVars,
     jobject nScalars, jobject nMutateVars, jobject typeMask) {
   mx_uint numUseVars;
@@ -132,7 +132,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxFuncDescribe
   int ret = MXFuncDescribe(reinterpret_cast<FunctionHandle>(funcPtr), &numUseVars,
                             &numScalars, &numMutateVars, &type);
 
-  jclass refIntClass = env->FindClass("ml/dmlc/mxnet/Base$RefInt");
+  jclass refIntClass = env->FindClass("org/apache/mxnet/Base$RefInt");
   jfieldID value = env->GetFieldID(refIntClass, "value", "I");
   env->SetIntField(nUsedVars, value, static_cast<jint>(numUseVars));
   env->SetIntField(nScalars, value, static_cast<jint>(numScalars));
@@ -142,7 +142,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxFuncDescribe
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxFuncGetInfo
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxFuncGetInfo
   (JNIEnv *env, jobject obj, jlong funcPtr, jobject name, jobject desc,
     jobject numArgs, jobject argNames, jobject argTypes, jobject argDescs) {
   const char *cName;
@@ -155,10 +155,10 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxFuncGetInfo
                           &cName, &cDesc, &cNumArgs,
                           &cArgNames, &cArgTypes, &cArgDescs);
 
-  jclass refIntClass = env->FindClass("ml/dmlc/mxnet/Base$RefInt");
+  jclass refIntClass = env->FindClass("org/apache/mxnet/Base$RefInt");
   jfieldID valueInt = env->GetFieldID(refIntClass, "value", "I");
 
-  jclass refStringClass = env->FindClass("ml/dmlc/mxnet/Base$RefString");
+  jclass refStringClass = env->FindClass("org/apache/mxnet/Base$RefString");
   jfieldID valueStr = env->GetFieldID(refStringClass, "value", "Ljava/lang/String;");
 
   // scala.collection.mutable.ListBuffer append method
@@ -178,7 +178,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxFuncGetInfo
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxImperativeInvoke
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxImperativeInvoke
   (JNIEnv *env, jobject obj, jlong funcPtr, jlongArray inputs,
     jlongArray outputsGiven, jobject outputs, jint numParams,
     jobjectArray paramKeys, jobjectArray paramVals) {
@@ -254,7 +254,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxImperativeInvoke
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxFuncInvoke
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxFuncInvoke
   (JNIEnv *env, jobject obj, jlong funcPtr, jlongArray useVars,
     jfloatArray scalarArgs, jlongArray mutateVars) {
   jlong *cUseVars = env->GetLongArrayElements(useVars, NULL);
@@ -270,7 +270,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxFuncInvoke
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxFuncInvokeEx
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxFuncInvokeEx
   (JNIEnv *env, jobject obj, jlong funcPtr, jlongArray useVars,
     jfloatArray scalarArgs, jlongArray mutateVars,
     jint numParams, jobjectArray paramKeys, jobjectArray paramVals) {
@@ -318,7 +318,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxFuncInvokeEx
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArraySaveRawBytes
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxNDArraySaveRawBytes
   (JNIEnv *env, jobject obj, jlong ndArrayPtr, jobject dataBuf) {
   size_t length;
   const char *pdata;
@@ -339,7 +339,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArraySaveRawBytes
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArrayLoadFromRawBytes
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxNDArrayLoadFromRawBytes
   (JNIEnv *env, jobject obj, jbyteArray bytes, jobject handleRef) {
   int size = env->GetArrayLength(bytes);
   jbyte *byteArr = env->GetByteArrayElements(bytes, NULL);
@@ -351,7 +351,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArrayLoadFromRawBytes
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArrayGetShape
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxNDArrayGetShape
   (JNIEnv *env, jobject obj, jlong ndArrayPtr, jobject ndimRef, jobject dataBuf) {
   mx_uint ndim;
   const mx_uint *pdata;
@@ -371,14 +371,14 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArrayGetShape
   }
 
   // set ndimRef
-  jclass refIntClass = env->FindClass("ml/dmlc/mxnet/Base$RefInt");
+  jclass refIntClass = env->FindClass("org/apache/mxnet/Base$RefInt");
   jfieldID valueInt = env->GetFieldID(refIntClass, "value", "I");
   env->SetIntField(ndimRef, valueInt, ndim);
 
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArraySyncCopyToCPU
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxNDArraySyncCopyToCPU
   (JNIEnv *env, jobject obj, jlong ndArrayPtr, jbyteArray data, jint size) {
   jbyte *pdata = env->GetByteArrayElements(data, NULL);
   int ret = MXNDArraySyncCopyToCPU(reinterpret_cast<NDArrayHandle>(ndArrayPtr),
@@ -387,7 +387,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArraySyncCopyToCPU
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArraySlice
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxNDArraySlice
   (JNIEnv *env, jobject obj, jlong ndArrayPtr, jint start, jint end, jobject slicedHandle) {
   NDArrayHandle out;
   int ret = MXNDArraySlice(reinterpret_cast<NDArrayHandle>(ndArrayPtr), start, end, &out);
@@ -395,7 +395,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArraySlice
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArrayAt
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxNDArrayAt
   (JNIEnv *env, jobject obj, jlong ndArrayPtr, jint idx, jobject jout) {
   NDArrayHandle out;
   int ret = MXNDArrayAt(reinterpret_cast<NDArrayHandle>(ndArrayPtr), idx, &out);
@@ -403,7 +403,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArrayAt
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArrayReshape
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxNDArrayReshape
   (JNIEnv *env, jobject obj, jlong ndArrayPtr, jint ndim, jintArray dims, jobject reshapedHandle) {
   NDArrayHandle out;
   jint *pdims = env->GetIntArrayElements(dims, NULL);
@@ -414,7 +414,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArrayReshape
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArraySyncCopyFromCPU
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxNDArraySyncCopyFromCPU
   (JNIEnv *env, jobject obj, jlong arrayPtr, jfloatArray sourceArr, jint arrSize) {
   jfloat *sourcePtr = env->GetFloatArrayElements(sourceArr, NULL);
   int ret = MXNDArraySyncCopyFromCPU(reinterpret_cast<NDArrayHandle>(arrayPtr),
@@ -423,24 +423,24 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArraySyncCopyFromCPU
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArrayGetContext
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxNDArrayGetContext
   (JNIEnv *env, jobject obj, jlong arrayPtr, jobject devTypeId, jobject devId) {
   int outDevType;
   int outDevId;
   int ret = MXNDArrayGetContext(reinterpret_cast<NDArrayHandle>(arrayPtr), &outDevType, &outDevId);
-  jclass refClass = env->FindClass("ml/dmlc/mxnet/Base$RefInt");
+  jclass refClass = env->FindClass("org/apache/mxnet/Base$RefInt");
   jfieldID refFid = env->GetFieldID(refClass, "value", "I");
   env->SetIntField(devTypeId, refFid, outDevType);
   env->SetIntField(devId, refFid, outDevId);
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArrayFree
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxNDArrayFree
   (JNIEnv * env, jobject obj, jlong ndArrayHandle) {
   return MXNDArrayFree(reinterpret_cast<NDArrayHandle>(ndArrayHandle));
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArrayLoad
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxNDArrayLoad
   (JNIEnv * env, jobject obj, jstring jfname, jobject joutSize,
     jobject jhandles, jobject joutNameSize, jobject jnames) {
   mx_uint outSize;
@@ -457,7 +457,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArrayLoad
   }
 
   // fill sizes
-  jclass refIntClass = env->FindClass("ml/dmlc/mxnet/Base$RefInt");
+  jclass refIntClass = env->FindClass("org/apache/mxnet/Base$RefInt");
   jfieldID valueInt = env->GetFieldID(refIntClass, "value", "I");
   env->SetIntField(joutSize, valueInt, outSize);
   env->SetIntField(joutNameSize, valueInt, outNameSize);
@@ -485,7 +485,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArrayLoad
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArraySave
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxNDArraySave
   (JNIEnv * env, jobject obj, jstring jfname, jlongArray jhandles, jobjectArray jkeys) {
   int numArgs = env->GetArrayLength(jhandles);
   const char **keys = NULL;
@@ -521,7 +521,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArraySave
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArrayGetDType
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxNDArrayGetDType
   (JNIEnv * env, jobject obj, jlong jhandle, jobject jdtype) {
   int dtype;
   int ret = MXNDArrayGetDType(reinterpret_cast<NDArrayHandle>(jhandle), &dtype);
@@ -529,7 +529,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNDArrayGetDType
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxInitPSEnv
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxInitPSEnv
   (JNIEnv *env, jobject obj, jobjectArray jkeys, jobjectArray jvals) {
   // keys and values
   int paramSize = env->GetArrayLength(jkeys);
@@ -590,7 +590,7 @@ extern "C" void KVStoreServerControllerFunc
   // env->DeleteGlobalRef(controllerObjGlb);
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStoreRunServer
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxKVStoreRunServer
   (JNIEnv *env, jobject obj, jlong kvStorePtr, jobject controllerObj) {
   jobject controllerObjGlb = env->NewGlobalRef(controllerObj);
   return MXKVStoreRunServer(reinterpret_cast<KVStoreHandle>(kvStorePtr),
@@ -608,10 +608,10 @@ extern "C" void KVStoreUpdaterCallbackFunc
   // find java updater method
   jclass updtClass = env->GetObjectClass(updaterFuncObjGlb);
   jmethodID updtFunc = env->GetMethodID(updtClass,
-    "update", "(ILml/dmlc/mxnet/NDArray;Lml/dmlc/mxnet/NDArray;)V");
+    "update", "(ILorg/apache/mxnet/NDArray;Lorg/apache/mxnet/NDArray;)V");
 
   // find java NDArray constructor
-  jclass ndObjClass = env->FindClass("ml/dmlc/mxnet/NDArray");
+  jclass ndObjClass = env->FindClass("org/apache/mxnet/NDArray");
   jmethodID ndObjConstructor = env->GetMethodID(ndObjClass, "<init>", "(JZ)V");
 
   jobject ndRecv = env->NewObject(ndObjClass, ndObjConstructor,
@@ -630,7 +630,7 @@ extern "C" void KVStoreUpdaterCallbackFunc
   // env->DeleteGlobalRef(updaterFuncObjGlb);
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStoreSetUpdater
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxKVStoreSetUpdater
   (JNIEnv *env, jobject obj, jlong kvStorePtr, jobject updaterFuncObj) {
   jobject updaterFuncObjGlb = env->NewGlobalRef(updaterFuncObj);
   return MXKVStoreSetUpdater(reinterpret_cast<KVStoreHandle>(kvStorePtr),
@@ -638,7 +638,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStoreSetUpdater
                              reinterpret_cast<void *>(updaterFuncObjGlb));
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStoreIsWorkerNode
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxKVStoreIsWorkerNode
   (JNIEnv *env, jobject obj, jobject isWorkerRef) {
   int isWorker;
   int ret = MXKVStoreIsWorkerNode(&isWorker);
@@ -646,9 +646,9 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStoreIsWorkerNode
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStoreCreate
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxKVStoreCreate
   (JNIEnv *env, jobject obj, jstring name, jobject kvStoreHandle) {
-  jclass refLongClass = env->FindClass("ml/dmlc/mxnet/Base$RefLong");
+  jclass refLongClass = env->FindClass("org/apache/mxnet/Base$RefLong");
   jfieldID refLongFid = env->GetFieldID(refLongClass, "value", "J");
 
   KVStoreHandle out;
@@ -660,7 +660,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStoreCreate
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStoreInit
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxKVStoreInit
   (JNIEnv *env, jobject obj, jlong kvStorePtr, jint len, jintArray keys, jlongArray values) {
   jint *keyArray = env->GetIntArrayElements(keys, NULL);
   jlong *valueArray = env->GetLongArrayElements(values, NULL);
@@ -673,7 +673,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStoreInit
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStoreInitEx
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxKVStoreInitEx
   (JNIEnv *env, jobject obj, jlong kvStorePtr, jint len, jobjectArray keys, jlongArray values) {
   const char **keyArray = new const char *[len];
   for (int i = 0; i < len; i++) {
@@ -697,7 +697,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStoreInitEx
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStorePush
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxKVStorePush
   (JNIEnv *env, jobject obj, jlong kvStorePtr, jint len, jintArray keys,
     jlongArray values, jint priority) {
   jint *keyArray = env->GetIntArrayElements(keys, NULL);
@@ -711,7 +711,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStorePush
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStorePushEx
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxKVStorePushEx
   (JNIEnv *env, jobject obj, jlong kvStorePtr, jint len, jobjectArray keys,
     jlongArray values, jint priority) {
   const char **keyArray = new const char *[len];
@@ -737,7 +737,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStorePushEx
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStorePull
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxKVStorePull
   (JNIEnv *env, jobject obj, jlong kvStorePtr, jint len, jintArray keys,
     jlongArray outs, jint priority) {
   jint *keyArray = env->GetIntArrayElements(keys, NULL);
@@ -752,7 +752,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStorePull
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStorePullEx
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxKVStorePullEx
   (JNIEnv *env, jobject obj, jlong kvStorePtr, jint len, jobjectArray keys,
     jlongArray outs, jint priority) {
   const char **keyArray = new const char *[len];
@@ -778,17 +778,17 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStorePullEx
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStoreGetType
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxKVStoreGetType
   (JNIEnv *env, jobject obj, jlong kvStorePtr, jobject kvType) {
   const char *type;
   int ret = MXKVStoreGetType(reinterpret_cast<KVStoreHandle>(kvStorePtr), &type);
-  jclass refStringClass = env->FindClass("ml/dmlc/mxnet/Base$RefString");
+  jclass refStringClass = env->FindClass("org/apache/mxnet/Base$RefString");
   jfieldID valueStr = env->GetFieldID(refStringClass, "value", "Ljava/lang/String;");
   env->SetObjectField(kvType, valueStr, env->NewStringUTF(type));
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStoreSendCommmandToServers
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxKVStoreSendCommmandToServers
   (JNIEnv *env, jobject obj, jlong kvStorePtr, jint head, jstring body) {
   const char *bodyCStr = env->GetStringUTFChars(body, 0);
   int ret = MXKVStoreSendCommmandToServers(
@@ -797,12 +797,12 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStoreSendCommmandToServers
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStoreBarrier
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxKVStoreBarrier
   (JNIEnv *env, jobject obj, jlong kvStorePtr) {
   return MXKVStoreBarrier((KVStoreHandle)kvStorePtr);
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStoreGetGroupSize
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxKVStoreGetGroupSize
   (JNIEnv *env, jobject obj, jlong kvStorePtr, jobject sizeRef) {
   int size;
   int ret = MXKVStoreGetGroupSize(reinterpret_cast<KVStoreHandle>(kvStorePtr), &size);
@@ -810,7 +810,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStoreGetGroupSize
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStoreGetRank
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxKVStoreGetRank
   (JNIEnv *env, jobject obj, jlong kvStorePtr, jobject rankRef) {
   int rank;
   int ret = MXKVStoreGetRank(reinterpret_cast<KVStoreHandle>(kvStorePtr), &rank);
@@ -818,7 +818,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStoreGetRank
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStoreGetNumDeadNode
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxKVStoreGetNumDeadNode
   (JNIEnv * env, jobject obj, jlong kvStorePtr, jint nodeId, jobject numberRef) {
   int number;
   int ret = MXKVStoreGetNumDeadNode(reinterpret_cast<KVStoreHandle>(kvStorePtr),
@@ -828,18 +828,18 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStoreGetNumDeadNode
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStoreSetBarrierBeforeExit
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxKVStoreSetBarrierBeforeExit
   (JNIEnv * env, jobject obj, jlong kvStorePtr, jint doBarrier) {
   return MXKVStoreSetBarrierBeforeExit(reinterpret_cast<KVStoreHandle>(kvStorePtr),
                                        static_cast<const int>(doBarrier));
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxKVStoreFree
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxKVStoreFree
   (JNIEnv * env, jobject obj, jlong ptr) {
   return MXKVStoreFree(reinterpret_cast<KVStoreHandle>(ptr));
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxExecutorOutputs
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxExecutorOutputs
   (JNIEnv *env, jobject obj, jlong executorPtr, jobject outputs) {
   mx_uint outSize;
   NDArrayHandle *out;
@@ -860,17 +860,17 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxExecutorOutputs
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxExecutorFree
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxExecutorFree
   (JNIEnv * env, jobject obj, jlong ptr) {
   return MXExecutorFree(reinterpret_cast<ExecutorHandle>(ptr));
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxExecutorForward
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxExecutorForward
   (JNIEnv * env, jobject obj, jlong ptr, jint isTrain) {
   return MXExecutorForward(reinterpret_cast<ExecutorHandle>(ptr), static_cast<int>(isTrain));
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxExecutorBackward
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxExecutorBackward
   (JNIEnv * env, jobject obj, jlong executorPtr, jlongArray grads) {
   int gradsSize = env->GetArrayLength(grads);
   jlong *gradArr = env->GetLongArrayElements(grads, NULL);
@@ -881,7 +881,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxExecutorBackward
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxExecutorPrint
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxExecutorPrint
   (JNIEnv * env, jobject obj, jlong ptr, jobject debugStr) {
   const char *retDebugStr;
   int ret = MXExecutorPrint(reinterpret_cast<ExecutorHandle>(ptr), &retDebugStr);
@@ -910,7 +910,7 @@ extern "C" void ExecutorMonitorCallbackFunc
   // can we find a way to safely destroy this global ref ?
   // env->DeleteGlobalRef(callbackFuncObjGlb);
 }
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxExecutorSetMonitorCallback
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxExecutorSetMonitorCallback
   (JNIEnv *env, jobject obj, jlong executorPtr, jobject callbackFuncObj) {
   jobject callbackFuncObjGlb = env->NewGlobalRef(callbackFuncObj);
   return MXExecutorSetMonitorCallback(reinterpret_cast<ExecutorHandle>(executorPtr),
@@ -918,12 +918,12 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxExecutorSetMonitorCallback
                                       reinterpret_cast<void *>(callbackFuncObjGlb));
 }
 
-JNIEXPORT jstring JNICALL Java_ml_dmlc_mxnet_LibInfo_mxGetLastError(JNIEnv * env, jobject obj) {
+JNIEXPORT jstring JNICALL Java_org_apache_mxnet_LibInfo_mxGetLastError(JNIEnv * env, jobject obj) {
   return env->NewStringUTF(MXGetLastError());
 }
 
 // IO funcs
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxListDataIters
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxListDataIters
   (JNIEnv * env, jobject obj, jobject creators) {
   jclass longCls = env->FindClass("java/lang/Long");
   jmethodID longConst = env->GetMethodID(longCls, "<init>", "(J)V");
@@ -945,7 +945,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxListDataIters
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxDataIterCreateIter
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxDataIterCreateIter
   (JNIEnv * env, jobject obj, jlong creator, jobjectArray jkeys,
     jobjectArray jvals, jobject dataIterHandleRef) {
   // keys and values
@@ -991,7 +991,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxDataIterCreateIter
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxDataIterGetIterInfo
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxDataIterGetIterInfo
   (JNIEnv * env, jobject obj, jlong creator, jobject jname,
     jobject jdesc, jobject jargNames, jobject jargTypeInfos, jobject jargDescs) {
   const char* name;
@@ -1008,7 +1008,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxDataIterGetIterInfo
                                    &argTypeInfos,
                                    &argDescs);
 
-  jclass refStringClass = env->FindClass("ml/dmlc/mxnet/Base$RefString");
+  jclass refStringClass = env->FindClass("org/apache/mxnet/Base$RefString");
   jfieldID valueStr = env->GetFieldID(refStringClass, "value", "Ljava/lang/String;");
   // set params
   env->SetObjectField(jname, valueStr, env->NewStringUTF(name));
@@ -1024,19 +1024,19 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxDataIterGetIterInfo
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxDataIterFree
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxDataIterFree
   (JNIEnv *env, jobject obj, jlong handle) {
   int ret = MXDataIterFree(reinterpret_cast<DataIterHandle>(handle));
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxDataIterBeforeFirst
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxDataIterBeforeFirst
   (JNIEnv *env, jobject obj, jlong handle) {
   int ret = MXDataIterBeforeFirst(reinterpret_cast<DataIterHandle>(handle));
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxDataIterNext
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxDataIterNext
   (JNIEnv *env, jobject obj, jlong handle, jobject out) {
   int cout;
   int ret = MXDataIterNext(reinterpret_cast<DataIterHandle>(handle), &cout);
@@ -1044,7 +1044,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxDataIterNext
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxDataIterGetLabel
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxDataIterGetLabel
   (JNIEnv *env, jobject obj, jlong handle, jobject ndArrayHandleRef) {
   NDArrayHandle out;
   int ret = MXDataIterGetLabel(reinterpret_cast<DataIterHandle>(handle), &out);
@@ -1052,7 +1052,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxDataIterGetLabel
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxDataIterGetData
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxDataIterGetData
   (JNIEnv *env, jobject obj, jlong handle, jobject ndArrayHandleRef) {
   NDArrayHandle out;
   int ret = MXDataIterGetData(reinterpret_cast<DataIterHandle>(handle), &out);
@@ -1060,7 +1060,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxDataIterGetData
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxDataIterGetIndex
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxDataIterGetIndex
   (JNIEnv *env, jobject obj, jlong handle, jobject outIndex, jobject outSize) {
   uint64_t* coutIndex;
   uint64_t coutSize;
@@ -1083,7 +1083,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxDataIterGetIndex
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxDataIterGetPadNum
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxDataIterGetPadNum
   (JNIEnv *env, jobject obj, jlong handle, jobject pad) {
   int cpad;
   int ret = MXDataIterGetPadNum((DataIterHandle)handle, &cpad);
@@ -1092,12 +1092,12 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxDataIterGetPadNum
 }
 
 // Symbol functions
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolFree
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxSymbolFree
   (JNIEnv * env, jobject obj, jlong ptr) {
   return MXSymbolFree((SymbolHandle) ptr);
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolListAtomicSymbolCreators
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxSymbolListAtomicSymbolCreators
   (JNIEnv *env, jobject obj, jobject symbolList) {
   mx_uint outSize;
   AtomicSymbolCreator *outArray;
@@ -1118,7 +1118,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolListAtomicSymbolCreato
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolGetAtomicSymbolInfo
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxSymbolGetAtomicSymbolInfo
   (JNIEnv *env, jobject obj, jlong symbolPtr, jobject name, jobject desc, jobject numArgs,
     jobject argNames, jobject argTypes, jobject argDescs, jobject keyVarNumArgs) {
 
@@ -1135,10 +1135,10 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolGetAtomicSymbolInfo
                                         &cArgNames, &cArgTypes, &cArgDescs,
                                         &cKeyVarNumArgs);
 
-  jclass refIntClass = env->FindClass("ml/dmlc/mxnet/Base$RefInt");
+  jclass refIntClass = env->FindClass("org/apache/mxnet/Base$RefInt");
   jfieldID valueInt = env->GetFieldID(refIntClass, "value", "I");
 
-  jclass refStringClass = env->FindClass("ml/dmlc/mxnet/Base$RefString");
+  jclass refStringClass = env->FindClass("org/apache/mxnet/Base$RefString");
   jfieldID valueStr = env->GetFieldID(refStringClass, "value", "Ljava/lang/String;");
 
   // scala.collection.mutable.ListBuffer append method
@@ -1159,7 +1159,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolGetAtomicSymbolInfo
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolCreateAtomicSymbol
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxSymbolCreateAtomicSymbol
   (JNIEnv *env, jobject obj, jlong symbolPtr, jobjectArray paramKeys,
     jobjectArray paramVals, jobject symbolRef) {
   int paramSize = env->GetArrayLength(paramKeys);
@@ -1198,7 +1198,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolCreateAtomicSymbol
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolSetAttr
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxSymbolSetAttr
   (JNIEnv *env, jobject obj, jlong symbolPtr, jstring jkey, jstring jvalue) {
   const char *ckey = env->GetStringUTFChars(jkey, 0);
   const char *cvalue = env->GetStringUTFChars(jvalue, 0);
@@ -1208,14 +1208,14 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolSetAttr
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolListAttrShallow
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxSymbolListAttrShallow
   (JNIEnv *env, jobject obj, jlong symbolPtr, jobject joutSize, jobject jout) {
   mx_uint outSize;
   const char** out;
 
   int ret = MXSymbolListAttrShallow(reinterpret_cast<SymbolHandle>(symbolPtr), &outSize, &out);
 
-  jclass refIntClass = env->FindClass("ml/dmlc/mxnet/Base$RefInt");
+  jclass refIntClass = env->FindClass("org/apache/mxnet/Base$RefInt");
   jfieldID valueInt = env->GetFieldID(refIntClass, "value", "I");
   env->SetIntField(joutSize, valueInt, static_cast<jint>(outSize));
 
@@ -1231,14 +1231,14 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolListAttrShallow
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolListAttr
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxSymbolListAttr
   (JNIEnv *env, jobject obj, jlong symbolPtr, jobject joutSize, jobject jout) {
   mx_uint outSize;
   const char** out;
 
   int ret = MXSymbolListAttr(reinterpret_cast<SymbolHandle>(symbolPtr), &outSize, &out);
 
-  jclass refIntClass = env->FindClass("ml/dmlc/mxnet/Base$RefInt");
+  jclass refIntClass = env->FindClass("org/apache/mxnet/Base$RefInt");
   jfieldID valueInt = env->GetFieldID(refIntClass, "value", "I");
   env->SetIntField(joutSize, valueInt, static_cast<jint>(outSize));
 
@@ -1254,7 +1254,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolListAttr
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolCompose
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxSymbolCompose
   (JNIEnv *env, jobject obj, jlong symbolPtr, jstring jname,
     jobjectArray jkeys, jlongArray jargs) {
   int argSize = env->GetArrayLength(jargs);
@@ -1287,7 +1287,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolCompose
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolCreateVariable
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxSymbolCreateVariable
   (JNIEnv *env, jobject obj, jstring jname, jobject handle) {
   SymbolHandle out;
   const char *name = env->GetStringUTFChars(jname, 0);
@@ -1297,7 +1297,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolCreateVariable
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolGetAttr
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxSymbolGetAttr
   (JNIEnv *env, jobject obj, jlong symbolPtr, jstring jkey, jobject retRef, jobject successRef) {
   const char *out;
   int success;
@@ -1310,7 +1310,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolGetAttr
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolListArguments
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxSymbolListArguments
   (JNIEnv *env, jobject obj, jlong symbolPtr, jobject arguments) {
   mx_uint outSize;
   const char **outStrArray;
@@ -1329,7 +1329,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolListArguments
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolListOutputs
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxSymbolListOutputs
   (JNIEnv *env, jobject obj, jlong symbolPtr, jobject outputs) {
   mx_uint outSize;
   const char **outStrArray;
@@ -1347,7 +1347,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolListOutputs
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolListAuxiliaryStates
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxSymbolListAuxiliaryStates
   (JNIEnv *env, jobject obj, jlong symbolPtr, jobject outputs) {
   mx_uint outSize;
   const char **outStrArray;
@@ -1366,7 +1366,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolListAuxiliaryStates
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolCopy
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxSymbolCopy
   (JNIEnv *env, jobject obj, jlong symbolPtr, jobject clonedSymbolRef) {
   SymbolHandle clonedSymbol;
   int ret = MXSymbolCopy(reinterpret_cast<SymbolHandle>(symbolPtr), &clonedSymbol);
@@ -1374,7 +1374,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolCopy
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolCreateGroup
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxSymbolCreateGroup
   (JNIEnv *env, jobject obj, jlongArray jsymbols, jobject out) {
   int numSymbols = env->GetArrayLength(jsymbols);
   SymbolHandle handle;
@@ -1385,7 +1385,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolCreateGroup
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolPrint
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxSymbolPrint
   (JNIEnv *env, jobject obj, jlong symbolPtr, jobject out) {
   const char *outStr;
   int ret = MXSymbolPrint(reinterpret_cast<SymbolHandle>(symbolPtr), &outStr);
@@ -1393,7 +1393,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolPrint
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolGetOutput
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxSymbolGetOutput
   (JNIEnv *env, jobject obj, jlong symbolPtr, jint index, jobject jout) {
   SymbolHandle out;
   int ret = MXSymbolGetOutput(reinterpret_cast<SymbolHandle>(symbolPtr),
@@ -1402,7 +1402,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolGetOutput
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolGetInternals
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxSymbolGetInternals
   (JNIEnv *env, jobject obj, jlong symbolPtr, jobject jout) {
   SymbolHandle out;
   int ret = MXSymbolGetInternals(reinterpret_cast<SymbolHandle>(symbolPtr), &out);
@@ -1410,7 +1410,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolGetInternals
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolInferType
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxSymbolInferType
   (JNIEnv *env, jobject obj, jlong symbolPtr, jobjectArray jkeys, jintArray jvals,
     jobject jargTypeData, jobject joutTypeData, jobject jauxTypeData, jobject jcomplete) {
   int numArgs = env->GetArrayLength(jvals);
@@ -1481,7 +1481,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolInferType
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolSaveToJSON
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxSymbolSaveToJSON
   (JNIEnv *env, jobject obj, jlong symbolPtr, jobject jout) {
   const char *out;
   int ret = MXSymbolSaveToJSON(reinterpret_cast<SymbolHandle>(symbolPtr), &out);
@@ -1489,7 +1489,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolSaveToJSON
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolCreateFromJSON
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxSymbolCreateFromJSON
   (JNIEnv *env, jobject obj, jstring json, jobject jhandleRef) {
   const char *str = env->GetStringUTFChars(json, 0);
   SymbolHandle out;
@@ -1499,7 +1499,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolCreateFromJSON
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolSaveToFile
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxSymbolSaveToFile
   (JNIEnv *env, jobject obj, jlong symbolPtr, jstring jfname) {
   const char *fname = env->GetStringUTFChars(jfname, 0);
   int ret = MXSymbolSaveToFile(reinterpret_cast<SymbolHandle>(symbolPtr), fname);
@@ -1507,7 +1507,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolSaveToFile
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolCreateFromFile
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxSymbolCreateFromFile
   (JNIEnv *env, jobject obj, jstring jfname, jobject jhandleRef) {
   const char *fname = env->GetStringUTFChars(jfname, 0);
   SymbolHandle out;
@@ -1532,7 +1532,7 @@ int FillSymbolInferShape
   }
   return 0;
 }
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolInferShape
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxSymbolInferShape
   (JNIEnv *env, jobject obj, jlong symbolPtr, jint jnumArgs, jobjectArray jkeys,
     jintArray jargIndPtr, jintArray jargShapeData,
     jobject jinShapeData, jobject joutShapeData, jobject jauxShapeData, jobject jcomplete) {
@@ -1615,7 +1615,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSymbolInferShape
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxExecutorBindX
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxExecutorBindX
   (JNIEnv *env, jobject obj, jlong symbolPtr, jint deviceTypeId, jint deviceID, jint numCtx,
     jobjectArray jctxMapKeys, jintArray jctxMapDevTypes, jintArray jctxMapDevIDs, jint numArgs,
     jlongArray jargsHandle, jlongArray jargsGradHandle, jintArray jreqsArray,
@@ -1667,7 +1667,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxExecutorBindX
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxExecutorBindEX
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxExecutorBindEX
   (JNIEnv *env, jobject obj, jlong symbolPtr, jint deviceTypeId, jint deviceID, jint numCtx,
     jobjectArray jctxMapKeys, jintArray jctxMapDevTypes, jintArray jctxMapDevIDs, jint numArgs,
     jlongArray jargsHandle, jlongArray jargsGradHandle, jintArray jreqsArray,
@@ -1722,17 +1722,17 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxExecutorBindEX
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxRandomSeed
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxRandomSeed
   (JNIEnv *env, jobject obj, jint seed) {
   return MXRandomSeed(seed);
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxNotifyShutdown
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxNotifyShutdown
   (JNIEnv *env, jobject obj) {
   return MXNotifyShutdown();
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxRecordIOWriterCreate
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxRecordIOWriterCreate
   (JNIEnv *env, jobject obj, jstring juri, jobject handle) {
   RecordIOHandle out;
   const char *uri = env->GetStringUTFChars(juri, 0);
@@ -1742,7 +1742,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxRecordIOWriterCreate
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxRecordIOReaderCreate
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxRecordIOReaderCreate
   (JNIEnv *env, jobject obj, jstring juri, jobject handle) {
   RecordIOHandle out;
   const char *uri = env->GetStringUTFChars(juri, 0);
@@ -1752,21 +1752,21 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxRecordIOReaderCreate
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxRecordIOWriterFree
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxRecordIOWriterFree
   (JNIEnv *env, jobject obj, jlong handle) {
   RecordIOHandle recordIOHandle = reinterpret_cast<RecordIOHandle>(handle);
   int ret = MXRecordIOWriterFree(recordIOHandle);
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxRecordIOReaderFree
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxRecordIOReaderFree
   (JNIEnv *env, jobject obj, jlong handle) {
   RecordIOHandle recordIOHandle = reinterpret_cast<RecordIOHandle>(handle);
   int ret = MXRecordIOReaderFree(&recordIOHandle);
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxRecordIOWriterWriteRecord
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxRecordIOWriterWriteRecord
   (JNIEnv *env, jobject obj, jlong handle, jstring jbuf, jint size) {
   const char *buf = env->GetStringUTFChars(jbuf, 0);
   RecordIOHandle *recordIOHandle = reinterpret_cast<RecordIOHandle *>(handle);
@@ -1775,7 +1775,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxRecordIOWriterWriteRecord
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxRecordIOReaderReadRecord
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxRecordIOReaderReadRecord
   (JNIEnv *env, jobject obj, jlong handle, jobject buf) {
   RecordIOHandle *recordIOHandle = reinterpret_cast<RecordIOHandle *>(handle);
   size_t size;
@@ -1785,7 +1785,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxRecordIOReaderReadRecord
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxRecordIOWriterTell
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxRecordIOWriterTell
   (JNIEnv *env, jobject obj, jlong handle, jobject jpos) {
   RecordIOHandle *recordIOHandle = reinterpret_cast<RecordIOHandle *>(handle);
   size_t pos;
@@ -1794,14 +1794,14 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxRecordIOWriterTell
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxRecordIOReaderSeek
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxRecordIOReaderSeek
   (JNIEnv *env, jobject obj, jlong handle, jint pos) {
   RecordIOHandle *recordIOHandle = reinterpret_cast<RecordIOHandle *>(handle);
   int ret = MXRecordIOReaderSeek(recordIOHandle, pos);
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxRtcCreate
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxRtcCreate
   (JNIEnv *env, jobject obj, jstring jname, jobjectArray jinputNames,
     jobjectArray joutputNames, jlongArray jinputs, jlongArray joutputs,
     jstring jkernel, jobject jhandle) {
@@ -1859,7 +1859,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxRtcCreate
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxRtcPush
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxRtcPush
   (JNIEnv *env, jobject obj, jlong jhandle, jlongArray jinputs,
     jlongArray joutputs, jint gridDimX, jint gridDimY, jint gridDimZ,
     jint blockDimX, jint blockDimY, jint blockDimZ) {
@@ -1889,7 +1889,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxRtcPush
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxRtcFree
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxRtcFree
   (JNIEnv *env, jobject obj, jlong jhandle) {
   RtcHandle handle = reinterpret_cast<RtcHandle>(jhandle);
   int ret = MXRtcFree(handle);
@@ -1908,7 +1908,7 @@ std::unordered_map<std::string, jobject> globalOpMap;
 std::mutex mutex_opprop;
 std::mutex mutex_op;
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxCustomOpRegister
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxCustomOpRegister
   (JNIEnv *env, jobject obj, jstring jregName, jobject jopProp) {
   const char *regName = env->GetStringUTFChars(jregName, 0);
   std::string key(regName);
@@ -2236,7 +2236,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxCustomOpRegister
         _jvm->AttachCurrentThread(reinterpret_cast<void **>(&env), NULL);
         jclass opPropClass = env->GetObjectClass(globalOpPropMap.at(key));
         jmethodID midCreateOp = env->GetMethodID(
-          opPropClass, "createOperator", "(Ljava/lang/String;[[I[I)Lml/dmlc/mxnet/CustomOp;");
+          opPropClass, "createOperator", "(Ljava/lang/String;[[I[I)Lorg/apache/mxnet/CustomOp;");
         if (NULL == midCreateOp) {
           LOG(WARNING) << "could not find opProp method createOperator.";
           success = false;
@@ -2510,7 +2510,7 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxCustomOpRegister
   return MXCustomOpRegister(regName, creator);
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSetProfilerConfig
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxSetProfilerConfig
   (JNIEnv *env, jobject obj, jint jmode, jstring jfilename) {
   const char *fileName = env->GetStringUTFChars(jfilename, 0);
   int ret = MXSetProfilerConfig(jmode, fileName);
@@ -2518,12 +2518,12 @@ JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSetProfilerConfig
   return ret;
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxSetProfilerState
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxSetProfilerState
   (JNIEnv *env, jobject obj, jint jstate) {
   return MXSetProfilerState(jstate);
 }
 
-JNIEXPORT jint JNICALL Java_ml_dmlc_mxnet_LibInfo_mxDumpProfile
+JNIEXPORT jint JNICALL Java_org_apache_mxnet_LibInfo_mxDumpProfile
   (JNIEnv *env, jobject obj) {
   return MXDumpProfile();
 }
diff --git a/scala-package/pom.xml b/scala-package/pom.xml
index e772273..4712b82 100644
--- a/scala-package/pom.xml
+++ b/scala-package/pom.xml
@@ -3,11 +3,11 @@
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          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>
-  <groupId>ml.dmlc.mxnet</groupId>
+  <groupId>org.apache.mxnet</groupId>
   <artifactId>mxnet-parent_2.11</artifactId>
   <version>1.0.1-SNAPSHOT</version>
   <name>MXNet Scala Package - Parent</name>
-  <url>https://github.com/dmlc/mxnet/tree/master/scala-package</url>
+  <url>https://github.com/apache/incubator-mxnet/tree/master/scala-package</url>
   <description>MXNet Scala Package</description>
   <organization>
     <name>Distributed (Deep) Machine Learning Community</name>
@@ -22,7 +22,7 @@
   <scm>
     <connection>scm:git:git@github.com:dmlc/mxnet.git</connection>
     <developerConnection>scm:git:git@github.com:dmlc/mxnet.git</developerConnection>
-    <url>https://github.com/dmlc/mxnet</url>
+    <url>https://github.com/apache/incubator-mxnet</url>
   </scm>
 
   <developers>
diff --git a/scala-package/spark/bin/run-mnist-example.sh b/scala-package/spark/bin/run-mnist-example.sh
index 57b8a18..962c337 100755
--- a/scala-package/spark/bin/run-mnist-example.sh
+++ b/scala-package/spark/bin/run-mnist-example.sh
@@ -73,7 +73,7 @@ fi
 HOST=`hostname`
 
 $SPARK_HOME/bin/spark-submit --master spark://$HOST:7077 \
-  --class ml.dmlc.mxnet.spark.example.ClassificationExample \
+  --class org.apache.mxnet.spark.example.ClassificationExample \
   ${SPARK_OPTS} \
   ${SPARK_JAR} \
   ${RUN_OPTS}
diff --git a/scala-package/spark/pom.xml b/scala-package/spark/pom.xml
index 3863c77..230b8d9 100644
--- a/scala-package/spark/pom.xml
+++ b/scala-package/spark/pom.xml
@@ -4,7 +4,7 @@
          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>
-    <groupId>ml.dmlc.mxnet</groupId>
+    <groupId>org.apache.mxnet</groupId>
     <artifactId>mxnet-parent_2.11</artifactId>
     <version>1.0.1-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
@@ -19,7 +19,7 @@
 
   <dependencies>
     <dependency>
-      <groupId>ml.dmlc.mxnet</groupId>
+      <groupId>org.apache.mxnet</groupId>
       <artifactId>mxnet-core_${scala.binary.version}</artifactId>
       <version>1.0.1-SNAPSHOT</version>
       <scope>provided</scope>
diff --git a/scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/MXNDArray.scala b/scala-package/spark/src/main/scala/org/apache/mxnet/spark/MXNDArray.scala
similarity index 89%
rename from scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/MXNDArray.scala
rename to scala-package/spark/src/main/scala/org/apache/mxnet/spark/MXNDArray.scala
index 3e1432d..38ceb7d 100644
--- a/scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/MXNDArray.scala
+++ b/scala-package/spark/src/main/scala/org/apache/mxnet/spark/MXNDArray.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.spark
+package org.apache.mxnet.spark
 
-import ml.dmlc.mxnet.NDArray
+import org.apache.mxnet.NDArray
 
 /**
- * A wrapper for serialize & deserialize [[ml.dmlc.mxnet.NDArray]] in spark job
+ * A wrapper for serialize & deserialize [[org.apache.mxnet.NDArray]] in spark job
  * @author Yizhi Liu
  */
 class MXNDArray(@transient private var ndArray: NDArray) extends Serializable {
diff --git a/scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/MXNet.scala b/scala-package/spark/src/main/scala/org/apache/mxnet/spark/MXNet.scala
similarity index 98%
rename from scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/MXNet.scala
rename to scala-package/spark/src/main/scala/org/apache/mxnet/spark/MXNet.scala
index cc77342..9720038 100644
--- a/scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/MXNet.scala
+++ b/scala-package/spark/src/main/scala/org/apache/mxnet/spark/MXNet.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.spark
+package org.apache.mxnet.spark
 
-import ml.dmlc.mxnet._
-import ml.dmlc.mxnet.optimizer.SGD
-import ml.dmlc.mxnet.spark.io.LabeledPointIter
+import org.apache.mxnet._
+import org.apache.mxnet.optimizer.SGD
+import org.apache.mxnet.spark.io.LabeledPointIter
 
 import org.slf4j.{Logger, LoggerFactory}
 
diff --git a/scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/MXNetModel.scala b/scala-package/spark/src/main/scala/org/apache/mxnet/spark/MXNetModel.scala
similarity index 92%
rename from scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/MXNetModel.scala
rename to scala-package/spark/src/main/scala/org/apache/mxnet/spark/MXNetModel.scala
index bf7f241..23683f7 100644
--- a/scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/MXNetModel.scala
+++ b/scala-package/spark/src/main/scala/org/apache/mxnet/spark/MXNetModel.scala
@@ -15,15 +15,15 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.spark
+package org.apache.mxnet.spark
 
-import ml.dmlc.mxnet.spark.io.PointIter
-import ml.dmlc.mxnet.{FeedForward, NDArray, Shape}
+import org.apache.mxnet.spark.io.PointIter
+import org.apache.mxnet.{FeedForward, NDArray, Shape}
 import org.apache.spark.SparkContext
 import org.apache.spark.mllib.linalg.Vector
 
 /**
- * Wrapper for [[ml.dmlc.mxnet.Model]] which used in Spark application
+ * Wrapper for [[org.apache.mxnet.Model]] which used in Spark application
  * @author Yizhi Liu
  */
 class MXNetModel private[mxnet](
diff --git a/scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/MXNetParams.scala b/scala-package/spark/src/main/scala/org/apache/mxnet/spark/MXNetParams.scala
similarity index 95%
rename from scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/MXNetParams.scala
rename to scala-package/spark/src/main/scala/org/apache/mxnet/spark/MXNetParams.scala
index d35b84f..47e6cd4 100644
--- a/scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/MXNetParams.scala
+++ b/scala-package/spark/src/main/scala/org/apache/mxnet/spark/MXNetParams.scala
@@ -15,11 +15,11 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.spark
+package org.apache.mxnet.spark
 
 import java.io.File
 
-import ml.dmlc.mxnet.{Context, Shape, Symbol}
+import org.apache.mxnet.{Context, Shape, Symbol}
 import org.apache.spark.SparkFiles
 
 /**
diff --git a/scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/ParameterServer.scala b/scala-package/spark/src/main/scala/org/apache/mxnet/spark/ParameterServer.scala
similarity index 98%
rename from scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/ParameterServer.scala
rename to scala-package/spark/src/main/scala/org/apache/mxnet/spark/ParameterServer.scala
index 7ed4512..907d3de 100644
--- a/scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/ParameterServer.scala
+++ b/scala-package/spark/src/main/scala/org/apache/mxnet/spark/ParameterServer.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.spark
+package org.apache.mxnet.spark
 
 import java.io.{IOException, InputStream, OutputStream}
 import java.util.concurrent.atomic.AtomicReference
 
-import ml.dmlc.mxnet.KVStoreServer
+import org.apache.mxnet.KVStoreServer
 import org.kohsuke.args4j.{Option, CmdLineParser}
 import org.slf4j.{LoggerFactory, Logger}
 
diff --git a/scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/example/ClassificationExample.scala b/scala-package/spark/src/main/scala/org/apache/mxnet/spark/example/ClassificationExample.scala
similarity index 98%
rename from scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/example/ClassificationExample.scala
rename to scala-package/spark/src/main/scala/org/apache/mxnet/spark/example/ClassificationExample.scala
index dcb751f..ce49302 100644
--- a/scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/example/ClassificationExample.scala
+++ b/scala-package/spark/src/main/scala/org/apache/mxnet/spark/example/ClassificationExample.scala
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.spark.example
+package org.apache.mxnet.spark.example
 
-import ml.dmlc.mxnet.spark.MXNet
-import ml.dmlc.mxnet.{Symbol, NDArray, Context, Shape}
+import org.apache.mxnet.spark.MXNet
+import org.apache.mxnet.{Symbol, NDArray, Context, Shape}
 import org.apache.spark.mllib.linalg.Vectors
 import org.apache.spark.mllib.regression.LabeledPoint
 import org.apache.spark.rdd.RDD
diff --git a/scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/io/LabeledPointIter.scala b/scala-package/spark/src/main/scala/org/apache/mxnet/spark/io/LabeledPointIter.scala
similarity index 97%
rename from scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/io/LabeledPointIter.scala
rename to scala-package/spark/src/main/scala/org/apache/mxnet/spark/io/LabeledPointIter.scala
index 4fe86bd..adc723e 100644
--- a/scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/io/LabeledPointIter.scala
+++ b/scala-package/spark/src/main/scala/org/apache/mxnet/spark/io/LabeledPointIter.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.spark.io
+package org.apache.mxnet.spark.io
 
-import ml.dmlc.mxnet.{DataBatch, NDArray, Shape, DataIter}
+import org.apache.mxnet.{DataBatch, NDArray, Shape, DataIter}
 import org.apache.spark.mllib.regression.LabeledPoint
 
 import scala.collection.immutable.ListMap
diff --git a/scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/io/LongLivingDataBatch.scala b/scala-package/spark/src/main/scala/org/apache/mxnet/spark/io/LongLivingDataBatch.scala
similarity index 93%
rename from scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/io/LongLivingDataBatch.scala
rename to scala-package/spark/src/main/scala/org/apache/mxnet/spark/io/LongLivingDataBatch.scala
index c95d607..339f7e2 100644
--- a/scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/io/LongLivingDataBatch.scala
+++ b/scala-package/spark/src/main/scala/org/apache/mxnet/spark/io/LongLivingDataBatch.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.spark.io
+package org.apache.mxnet.spark.io
 
-import ml.dmlc.mxnet.{NDArray, DataBatch}
+import org.apache.mxnet.{NDArray, DataBatch}
 
 /**
  * Dispose only when 'disposeForce' called
diff --git a/scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/io/PointIter.scala b/scala-package/spark/src/main/scala/org/apache/mxnet/spark/io/PointIter.scala
similarity index 97%
rename from scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/io/PointIter.scala
rename to scala-package/spark/src/main/scala/org/apache/mxnet/spark/io/PointIter.scala
index cb2752c..2132929 100644
--- a/scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/io/PointIter.scala
+++ b/scala-package/spark/src/main/scala/org/apache/mxnet/spark/io/PointIter.scala
@@ -15,9 +15,9 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.spark.io
+package org.apache.mxnet.spark.io
 
-import ml.dmlc.mxnet.{NDArray, DataBatch, DataIter, Shape}
+import org.apache.mxnet.{NDArray, DataBatch, DataIter, Shape}
 import org.apache.spark.mllib.linalg.Vector
 
 import scala.collection.immutable.ListMap
diff --git a/scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/transformer/MXNet.scala b/scala-package/spark/src/main/scala/org/apache/mxnet/spark/transformer/MXNet.scala
similarity index 96%
rename from scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/transformer/MXNet.scala
rename to scala-package/spark/src/main/scala/org/apache/mxnet/spark/transformer/MXNet.scala
index 7ed9c35..ca14149 100644
--- a/scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/transformer/MXNet.scala
+++ b/scala-package/spark/src/main/scala/org/apache/mxnet/spark/transformer/MXNet.scala
@@ -15,12 +15,12 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.spark.transformer
+package org.apache.mxnet.spark.transformer
 
 import java.util.UUID
 
-import ml.dmlc.mxnet.spark.{MXNetModel, MXNetParams}
-import ml.dmlc.mxnet.{Context, Shape, Symbol}
+import org.apache.mxnet.spark.{MXNetModel, MXNetParams}
+import org.apache.mxnet.{Context, Shape, Symbol}
 import org.apache.spark.SparkContext
 import org.apache.spark.ml.param.ParamMap
 import org.apache.spark.ml.util.{MLReadable, MLReader, MLWritable, MLWriter}
@@ -44,7 +44,7 @@ class MXNet extends Predictor[Vector, MXNet, MXNetModelWrap] {
     val lps = dataset.select(getFeaturesCol, getLabelCol).rdd
       .map(row => new LabeledPoint(row.getAs[Double](getLabelCol),
         row.getAs[Vector](getFeaturesCol)))
-    val mxNet = new ml.dmlc.mxnet.spark.MXNet()
+    val mxNet = new org.apache.mxnet.spark.MXNet()
       .setBatchSize(p.batchSize)
       .setLabelName(p.labelName)
       .setContext(p.context)
diff --git a/scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/utils/Img2Vector.scala b/scala-package/spark/src/main/scala/org/apache/mxnet/spark/utils/Img2Vector.scala
similarity index 98%
rename from scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/utils/Img2Vector.scala
rename to scala-package/spark/src/main/scala/org/apache/mxnet/spark/utils/Img2Vector.scala
index 5a74a98..a9ab1d7 100644
--- a/scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/utils/Img2Vector.scala
+++ b/scala-package/spark/src/main/scala/org/apache/mxnet/spark/utils/Img2Vector.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.spark.utils
+package org.apache.mxnet.spark.utils
 
 import javax.imageio.ImageIO
 
diff --git a/scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/utils/Network.scala b/scala-package/spark/src/main/scala/org/apache/mxnet/spark/utils/Network.scala
similarity index 98%
rename from scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/utils/Network.scala
rename to scala-package/spark/src/main/scala/org/apache/mxnet/spark/utils/Network.scala
index 00f42c5..c61229a 100644
--- a/scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/utils/Network.scala
+++ b/scala-package/spark/src/main/scala/org/apache/mxnet/spark/utils/Network.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.spark.utils
+package org.apache.mxnet.spark.utils
 
 import java.io.IOException
 import java.net.{ServerSocket, NetworkInterface}
diff --git a/scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/utils/RepIterator.scala b/scala-package/spark/src/main/scala/org/apache/mxnet/spark/utils/RepIterator.scala
similarity index 97%
rename from scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/utils/RepIterator.scala
rename to scala-package/spark/src/main/scala/org/apache/mxnet/spark/utils/RepIterator.scala
index f99e551..f95333a 100644
--- a/scala-package/spark/src/main/scala/ml/dmlc/mxnet/spark/utils/RepIterator.scala
+++ b/scala-package/spark/src/main/scala/org/apache/mxnet/spark/utils/RepIterator.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package ml.dmlc.mxnet.spark.utils
+package org.apache.mxnet.spark.utils
 
 import scala.collection.Iterator
 

-- 
To stop receiving notification emails like this one, please contact
['"commits@mxnet.apache.org" <co...@mxnet.apache.org>'].