diff --git a/dataChange/lighty/pom.xml b/dataChange/lighty/pom.xml
new file mode 100755
index 0000000..91f1c96
--- /dev/null
+++ b/dataChange/lighty/pom.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" 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>
+
+	<parent>
+		<groupId>org.onap.ccsdk.parent</groupId>
+		<artifactId>binding-parent</artifactId>
+		<version>1.4.0-SNAPSHOT</version>
+		<relativePath/>
+	</parent>
+
+	<groupId>org.onap.ccsdk.sli.northbound</groupId>
+	<artifactId>dataChange-lighty</artifactId>
+	<version>0.6.0-SNAPSHOT</version>
+	<packaging>jar</packaging>
+
+	<name>ccsdk-sli-northbound :: dataChange :: ${project.artifactId}</name>
+	<url>http://maven.apache.org</url>
+
+	<properties>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+	</properties>
+
+	<dependencyManagement>
+		<dependencies>
+			<dependency>
+				<groupId>org.onap.ccsdk.sli.core</groupId>
+				<artifactId>ccsdk-lighty-dependency-versions</artifactId>
+				<version>${project.version}</version>
+				<type>pom</type>
+				<scope>import</scope>
+			</dependency>
+		</dependencies>
+	</dependencyManagement>
+
+	<dependencies>
+		<dependency>
+			<groupId>io.lighty.core</groupId>
+			<artifactId>lighty-controller</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.onap.ccsdk.sli.northbound</groupId>
+			<artifactId>dataChange-provider</artifactId>
+			<version>${project.version}</version>
+		</dependency>
+	</dependencies>
+</project>
diff --git a/dataChange/lighty/src/main/java/org/onap/ccsdk/sli/northbound/dataChange/lighty/DataChangeModule.java b/dataChange/lighty/src/main/java/org/onap/ccsdk/sli/northbound/dataChange/lighty/DataChangeModule.java
new file mode 100644
index 0000000..412d466
--- /dev/null
+++ b/dataChange/lighty/src/main/java/org/onap/ccsdk/sli/northbound/dataChange/lighty/DataChangeModule.java
@@ -0,0 +1,62 @@
+/*
+ * ============LICENSE_START==========================================
+ * Copyright (c) 2019 PANTHEON.tech s.r.o.
+ * ===================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
+ * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+ * OF ANY KIND, either express or implied. See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END============================================
+ *
+ */
+package org.onap.ccsdk.sli.northbound.dataChange.lighty;
+
+import io.lighty.core.controller.api.AbstractLightyModule;
+import io.lighty.core.controller.api.LightyModule;
+import org.onap.ccsdk.sli.core.sli.provider.SvcLogicService;
+import org.onap.ccsdk.sli.northbound.DataChangeClient;
+import org.onap.ccsdk.sli.northbound.DataChangeProvider;
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
+import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
+
+/**
+ * The implementation of the {@link io.lighty.core.controller.api.LightyModule} that manages and provides services from
+ * the dataChange-provider artifact.
+ */
+public class DataChangeModule extends AbstractLightyModule implements LightyModule {
+
+    private final SvcLogicService svcLogicService;
+    private final DataBroker dataBroker;
+    private final NotificationPublishService publishService;
+    private final RpcProviderRegistry rpcRegistry;
+
+    private DataChangeClient dataChangeClient;
+    private DataChangeProvider dataChangeProvider;
+
+    public DataChangeModule(SvcLogicService svcLogicService, DataBroker dataBroker,
+            NotificationPublishService publishService, RpcProviderRegistry rpcRegistry) {
+        this.svcLogicService = svcLogicService;
+        this.dataBroker = dataBroker;
+        this.publishService = publishService;
+        this.rpcRegistry = rpcRegistry;
+    }
+
+    @Override
+    protected boolean initProcedure() {
+        this.dataChangeClient = new DataChangeClient(svcLogicService);
+        this.dataChangeProvider = new DataChangeProvider(dataBroker, publishService, rpcRegistry, dataChangeClient);
+        return true;
+    }
+
+    @Override
+    protected boolean stopProcedure() {
+        return true;
+    }
+
+}
diff --git a/dataChange/pom.xml b/dataChange/pom.xml
index 6a3d3ea..7588c79 100755
--- a/dataChange/pom.xml
+++ b/dataChange/pom.xml
@@ -21,6 +21,7 @@
         <module>features</module>
         <module>provider</module>
         <module>installer</module>
+        <module>lighty</module>
     </modules>
 
 </project>
