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

[GitHub] javelinjs closed pull request #9324: Refactor scala code/tests/examples/docs to use org.apache.mxnet

javelinjs closed pull request #9324: Refactor scala code/tests/examples/docs to use org.apache.mxnet
URL: https://github.com/apache/incubator-mxnet/pull/9324
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/docs/api/scala/index.md b/docs/api/scala/index.md
index ef8a03a06a..67e1f247ae 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 316a1ee7c4..ff212d1479 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 70b317a549..2157176d23 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 b5f59e2ab9..ed452cc763 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 8e9273fbf4..daf2d9747c 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 981e01d50a..3d4bc37a19 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 33afc66fcb..4616a65610 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 caf135680d..705fc95d4d 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 466d827269..2854a6d739 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 ad55ee4c02..9d5280b627 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 eb667e9792..aa7f67c680 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 89af249ae5..35fb9d9981 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 75f2d2cdcb..62d7fdb9f3 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 97e34c819d..a574f8af25 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 7c7162dbec..5a918151f6 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 ba5030c918..3a064bf9f2 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 0b5c4e20b4..b1e5233bd4 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 1abf81dd9c..bdbd09f170 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 efa3b75b15..e6505dd77e 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 b7219064a5..75aabdeab5 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 eaded0010d..6dac750fb4 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 5c67b85a87..58769b211c 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 43af5e8199..e98f2c7ce9 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 8833f31a00..beeb430f62 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 bfe757d5cf..b790ec32c2 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 98a09d2250..660ec8a676 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 e1d78d133e..2f79b58a52 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 5c4e47a979..22914a558b 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 a3237fe2a2..7289df1971 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 7bc936fc12..0aad1200fb 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 ad85969643..e26690c919 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 3ff606dca3..8e89ce76b8 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 d3c8691991..4c5ca66ce8 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 399c5c8e22..0cab368cf5 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 a943e31405..fd90548399 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 81ff1cfb3c..ad6fae5765 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 634e56bc74..8e53d652fd 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 7cfc059c44..416f2d74e8 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 63e0ca0b6d..dbc9612355 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 b8332c6974..6630d5ff53 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 27db5656d7..758cbc8296 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 ce1103ac6c..3c57c66046 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 210e61d8b7..34490837a0 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 5164ee3f21..efd4384224 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 d88f84c93f..e0a5d941ad 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 7bba7665a0..556f7e8334 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 f7b7370f22..e632ade808 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 44b371f8cb..13f85a731d 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 49c66a9f8a..ee2f10c9dc 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 03b06d519d..e0f7b94fde 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 a039f6d721..941276233a 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 32ba3591c9..2a0c333ebf 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 e7dd51b190..5108938209 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 3270ba7399..c0c0d1793b 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 d3b113f64a..75d88d1ae7 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 1878b35572..108cff4496 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 d64ccc0c0d..2823818854 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 010bb1c2c7..c13ebcd626 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 445622e5cb..ac3d645b33 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 a77041de5b..f376b54dc2 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 63a7810812..3afe509b94 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 c13fe2ab1d..ed3c513922 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 f611192c09..24f3323073 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 5af4caa2e6..6b5053b74a 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 2b2ce5f461..47fe62d17f 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 b1b6e40041..49fca6a124 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 d3099d53f0..c1b7259195 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 cb509f4a06..0765716c4b 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 500c97b7d0..e94d320391 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 5850212335..343362e05c 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 e6fd415d91..dc2c269932 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 60bc1ce931..02838064ca 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 3f723cfab4..1ddb292dc3 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 839c359880..ee38cc6251 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 ff23bf9b27..0f4b7c0e7a 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 8df6d18e2a..2e1b36c5b1 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 e95ab09b5b..8ed1dc4c23 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 ab48ef7d19..d75d8a597d 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 0aa1e72655..537a9702f9 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 6c9a2fa24f..55319338b2 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 9a83097542..1f7b2a42a5 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 8139d08722..ca85b56d8d 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 b2d4b5d0dd..86e229b0b1 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 6e8280d26a..b4b7486d0b 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 507d32c3b8..ebb61d7d4b 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 58971c02bb..1187757a03 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 28fe8405c4..90d187d6f6 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 f24553abfa..44f57c0d11 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 3b4e395bee..c5cdc435a2 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 ffd9a69a38..835bd29848 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 fa7837972b..4b7305fd71 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 eaa51f9ff5..1ce127ed35 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 b11bb89a2d..049df58747 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 160525e4eb..d44949d61b 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 6bb9636e98..29306706db 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 9d9edb719d..9e1f30e368 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 1c683bfc9e..0305ba47ac 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 fa08ff3713..cde290f7e4 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 54aafafcfd..824578b96e 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 711fe54654..18f290e52c 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 3ad160e2ba..33dfce4cc1 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 a4ed91354e..bf02a1d604 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 2e9a3a264c..4877f57855 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 7939b06274..88fae7cf52 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 951241fb18..f7c26a79ac 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 9e6a489e9f..62047528bc 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 a9c2e5c1c1..238c37127a 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 a4b545e244..3e8f5cd784 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 582cbb722b..796a92f702 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 d1e67131c2..0d22fe138d 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 d813130c00..7cab3c0bb4 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 f7305972b1..d033d6525e 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 7c8029f7d0..030670caca 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 55e5c3aaaa..4fa96f6287 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 f8ea2c5693..faab945067 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 51d203e682..c58f44da47 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 d06251cadd..ab86314a42 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 1f2bc7ae2c..d1ec88d67c 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 2eaffe7f3e..4d450c6045 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 c6676ccf60..ff616a57b1 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 27a542b081..bb17046b8b 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 9d2ff9d476..c9722a28f9 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 0af6c7c65a..4d9aa35d21 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 4ac9aa52e7..d99ea641b5 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 d9af32184d..c604f842c4 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 36aa62035e..0feb73d303 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 844adec373..8b5549de4a 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 d02436ffc9..94d05bb7d5 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 f4601d17cb..b90e9f0e31 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 ee1e238e0c..876a0529b6 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 518eb352e4..6044847be4 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 313a80a210..d681b16c5a 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 9551e4a661..4505531048 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 d16fbb1d8a..8616b898f3 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 f0cf707ed8..f0eae6890c 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 7804fd0e61..bf29a47fcf 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 303c2fb167..f3fe7641e2 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 5f919f13e0..3cd79f46dc 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 0d989a0465..243b70c067 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 2fe2780035..3afb93686b 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 b4cb14a943..c290230967 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 c68bc90d25..108439ddc1 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 af23c8a128..2808852fd1 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 160e9188d8..73bff4d039 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 37ebc3c7d9..0956957cdf 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 84233496b5..8fc8f4a3ed 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 de53d4af0c..9bc82b82dc 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 6118dae130..42413d2986 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 a48fc80db5..abfb2efcec 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 0d15a6cb11..6bc461963c 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 e2af2de982..3e4bb4f6eb 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 7ca19f1b07..7114e4c05d 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 19051891df..b689521bca 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 972b894841..028bf4629c 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 13b82bc830..7af2e05225 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 74e8abe790..7bd0c701f8 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 dea908a8dc..aa629e5194 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 1be9a8d71b..c26d14c129 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 730d424312..b6ddaafc7a 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 38ebebbcba..383c68c0fb 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 3bcb0123e8..61e4453b13 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 85ff4d25d3..333b591ba3 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 809da667e2..ae195fe1f2 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 55fb053802..ed3e20f10f 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 2ef31b2b39..a30e94dda0 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 f4fe93be06..8cbfd4d249 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 e77227343e..4712b82dda 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 57b8a18033..962c3375a9 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 3863c774b0..230b8d9a4a 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 3e1432da64..38ceb7dea1 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 cc77342be7..9720038afa 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 bf7f241980..23683f7e8b 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 d35b84f653..47e6cd4911 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 7ed4512444..907d3decde 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 dcb751fc66..ce49302fd8 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 4fe86bd62b..adc723ecda 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 c95d607c36..339f7e2d76 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 cb2752cec1..21329291cf 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 7ed9c35b9f..ca141498cf 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 5a74a98fd3..a9ab1d7327 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 00f42c5065..c61229af00 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 f99e551f8e..f95333aaef 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
 


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services