diff --git a/.gitignore b/.gitignore
index 1a5f3d2..0fd82d6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,3 +25,6 @@
 .settings
 .classpath
 .project
+paho*
+generated
+
diff --git a/pom.xml b/pom.xml
index 901ef1b..db993ce 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,111 +1,134 @@
 <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>
-    <groupId>net.lr.reactive.component</groupId>
-    <artifactId>rcomp-parent</artifactId>
-    <version>1.0.0-SNAPSHOT</version>
-    <packaging>pom</packaging>
+	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>net.lr.reactive.component</groupId>
+	<artifactId>rcomp-parent</artifactId>
+	<version>1.0.0-SNAPSHOT</version>
+	<packaging>pom</packaging>
 
-    <properties>
-    	<reactor.version>3.0.7.RELEASE</reactor.version>
-    	<jetty.version>8.1.15.v20140411</jetty.version>
-    	<cxf.version>3.2.0-SNAPSHOT</cxf.version>
-    </properties>
+	<properties>
+		<reactor.version>3.0.7.RELEASE</reactor.version>
+		<jetty.version>8.1.15.v20140411</jetty.version>
+		<cxf.version>3.1.2</cxf.version>
+	</properties>
 
-    <modules>
-        <module>rcomp-api</module>    
-        <module>rcomp-eventadmin</module>
-        <module>rcomp-mqtt</module>
-        <module>rcomp-mail</module>
-        <module>rcomp-examples</module>
-    </modules>
+	<modules>
+		<module>rcomp-api</module>
+		<module>rcomp-eventadmin</module>
+		<module>rcomp-mqtt</module>
+		<module>rcomp-mail</module>
+		<module>rcomp-examples</module>
+		<module>rcomp-index</module>
+	</modules>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.reactivestreams</groupId>
-            <artifactId>reactive-streams</artifactId>
-            <version>1.0.0</version>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-            <version>1.7.21</version>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>osgi.core</artifactId>
-            <version>6.0.0</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>osgi.cmpn</artifactId>
-            <version>6.0.0</version>
-            <scope>provided</scope>
-        </dependency>
+	<dependencies>
+		<dependency>
+			<groupId>org.reactivestreams</groupId>
+			<artifactId>reactive-streams</artifactId>
+			<version>1.0.0</version>
+		</dependency>
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-api</artifactId>
+			<version>1.7.21</version>
+		</dependency>
+		<dependency>
+			<groupId>org.osgi</groupId>
+			<artifactId>osgi.core</artifactId>
+			<version>6.0.0</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.osgi</groupId>
+			<artifactId>osgi.cmpn</artifactId>
+			<version>6.0.0</version>
+			<scope>provided</scope>
+		</dependency>
 
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-jdk14</artifactId>
-            <version>1.7.21</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>4.12</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-jdk14</artifactId>
+			<version>1.7.21</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>4.12</version>
+			<scope>test</scope>
+		</dependency>
+	</dependencies>
 
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>net.lr.reactive.component</groupId>
-                <artifactId>rcomp-api</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>io.projectreactor</groupId>
-                <artifactId>reactor-core</artifactId>
-                <version>3.0.7.RELEASE</version>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
+	<dependencyManagement>
+		<dependencies>
+			<dependency>
+				<groupId>net.lr.reactive.component</groupId>
+				<artifactId>rcomp-api</artifactId>
+				<version>${project.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>io.projectreactor</groupId>
+				<artifactId>reactor-core</artifactId>
+				<version>3.0.7.RELEASE</version>
+			</dependency>
+		</dependencies>
+	</dependencyManagement>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.5.1</version>
-                <configuration>
-                    <source>1.8</source>
-                    <target>1.8</target>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>biz.aQute.bnd</groupId>
-                <artifactId>bnd-maven-plugin</artifactId>
-                <version>3.3.0</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>bnd-process</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-jar-plugin</artifactId>
-                <version>3.0.2</version>
-                <configuration>
-                    <archive>
-                        <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
-                    </archive>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
+
+
+	<build>
+		<pluginManagement>
+			<plugins>
+				<plugin>
+					<groupId>biz.aQute.bnd</groupId>
+					<artifactId>bnd-export-maven-plugin</artifactId>
+					<version>3.4.0-SNAPSHOT</version>
+					<configuration>
+						<resolve>true</resolve>
+						<failOnChanges>false</failOnChanges>
+					</configuration>
+					<executions>
+						<execution>
+							<goals>
+								<goal>export</goal>
+							</goals>
+						</execution>
+					</executions>
+				</plugin>
+			</plugins>
+		</pluginManagement>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>3.5.1</version>
+				<configuration>
+					<source>1.8</source>
+					<target>1.8</target>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>biz.aQute.bnd</groupId>
+				<artifactId>bnd-maven-plugin</artifactId>
+				<version>3.3.0</version>
+				<executions>
+					<execution>
+						<goals>
+							<goal>bnd-process</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-jar-plugin</artifactId>
+				<version>3.0.2</version>
+				<configuration>
+					<archive>
+						<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
+					</archive>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
 </project>
diff --git a/rcomp-examples/bnd.bnd b/rcomp-examples/bnd.bnd
index 8b6f883..6b034bd 100644
--- a/rcomp-examples/bnd.bnd
+++ b/rcomp-examples/bnd.bnd
@@ -1 +1,2 @@
 Web-ContextPath:/rcomp-examples
+Private-Package: reactor.math
\ No newline at end of file
diff --git a/rcomp-examples/src/test/java/examples/TestRs.java b/rcomp-examples/src/test/java/examples/TestRs.java
index feef726..aa410dd 100644
--- a/rcomp-examples/src/test/java/examples/TestRs.java
+++ b/rcomp-examples/src/test/java/examples/TestRs.java
@@ -1,11 +1,6 @@
 package examples;
 
-import static reactor.core.publisher.Mono.fromCompletionStage;
-
 import java.io.IOException;
-import java.time.Duration;
-import java.util.List;
-import java.util.stream.Collectors;
 
 import javax.servlet.Servlet;
 import javax.servlet.ServletException;
@@ -21,8 +16,6 @@
 import org.eclipse.jetty.servlet.ServletHolder;
 import org.junit.Test;
 
-import reactor.core.publisher.Mono;
-
 public class TestRs {
 
     @Test
@@ -31,6 +24,7 @@
         server.start();
         WebTarget client1 = ClientBuilder.newClient().target("http://localhost:8384/Hello");
         WebTarget client2 = ClientBuilder.newClient().target("http://localhost:8384/World");
+        /*
         Mono<String> get1 = fromCompletionStage(client1.request().rx().get(String.class));
         Mono<String> get2 = fromCompletionStage(client2.request().rx().get(String.class));
         List<String> result = Mono
@@ -41,6 +35,7 @@
             .block(Duration.ofMillis(1500));
         String resultSt = result.stream().collect(Collectors.joining(" "));
         org.junit.Assert.assertEquals("Hello World", resultSt);
+        */
         server.stop();
     }
 
diff --git a/rcomp-index/pom.xml b/rcomp-index/pom.xml
new file mode 100644
index 0000000..0fc6c96
--- /dev/null
+++ b/rcomp-index/pom.xml
@@ -0,0 +1,149 @@
+<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>net.lr.reactive.component</groupId>
+		<artifactId>rcomp-parent</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+	</parent>
+	<artifactId>rcomp-index</artifactId>
+
+	<properties>
+		<rcomp.version>${project.version}</rcomp.version>
+	</properties>
+
+	<dependencies>
+		<dependency>
+			<groupId>net.lr.reactive.component</groupId>
+			<artifactId>rcomp-api</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>net.lr.reactive.component</groupId>
+			<artifactId>rcomp-eventadmin</artifactId>
+			<version>${rcomp.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.lr.reactive.component</groupId>
+			<artifactId>rcomp-mail</artifactId>
+			<version>${rcomp.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.lr.reactive.component</groupId>
+			<artifactId>rcomp-mqtt</artifactId>
+			<version>${rcomp.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>net.lr.reactive.component</groupId>
+			<artifactId>rcomp-examples</artifactId>
+			<version>${rcomp.version}</version>
+		</dependency>
+
+		<!-- Basic Felix bundles -->
+		<dependency>
+			<groupId>org.apache.felix</groupId>
+			<artifactId>org.apache.felix.framework</artifactId>
+			<version>5.4.0</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.felix</groupId>
+			<artifactId>org.apache.felix.eventadmin</artifactId>
+			<version>1.4.6</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.felix</groupId>
+			<artifactId>org.apache.felix.configadmin</artifactId>
+			<version>1.8.8</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.felix</groupId>
+			<artifactId>org.apache.felix.metatype</artifactId>
+			<version>1.1.2</version>
+			<exclusions>
+				<exclusion>
+					<artifactId>kxml2</artifactId>
+					<groupId>net.sf.kxml</groupId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.felix</groupId>
+			<artifactId>org.apache.felix.fileinstall</artifactId>
+			<version>3.5.2</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.felix</groupId>
+			<artifactId>org.apache.felix.gogo.command</artifactId>
+			<version>1.0.0</version>
+			<exclusions>
+				<exclusion>
+					<artifactId>org.osgi.core</artifactId>
+					<groupId>org.osgi</groupId>
+				</exclusion>
+				<exclusion>
+					<artifactId>org.osgi.compendium</artifactId>
+					<groupId>org.osgi</groupId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.felix</groupId>
+			<artifactId>org.apache.felix.gogo.jline</artifactId>
+			<version>1.0.0</version>
+		</dependency>
+		<dependency>
+			<groupId>org.jline</groupId>
+			<artifactId>jline</artifactId>
+			<version>3.0.1</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.felix</groupId>
+			<artifactId>org.apache.felix.scr</artifactId>
+			<version>2.0.2</version>
+			<exclusions>
+				<exclusion>
+					<artifactId>animal-sniffer-annotations</artifactId>
+					<groupId>org.codehaus.mojo</groupId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.felix</groupId>
+			<artifactId>org.apache.felix.http.jetty</artifactId>
+			<version>3.0.0</version>
+			<exclusions>
+				<exclusion>
+					<groupId>org.eclipse.jetty</groupId>
+					<artifactId>jetty-server</artifactId>
+				</exclusion>
+				<exclusion>
+					<groupId>org.eclipse.jetty.websocket</groupId>
+					<artifactId>websocket-server</artifactId>
+				</exclusion>
+				<exclusion>
+					<groupId>org.apache.felix</groupId>
+					<artifactId>org.apache.felix.http.base</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+
+		<dependency>
+			<groupId>org.ops4j.pax.logging</groupId>
+			<artifactId>pax-logging-service</artifactId>
+			<version>1.8.5</version>
+		</dependency>
+	</dependencies>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>biz.aQute.bnd</groupId>
+				<artifactId>bnd-export-maven-plugin</artifactId>
+				<configuration>
+					<bndruns>
+						<bndrun>rcomp-example.bndrun</bndrun>
+					</bndruns>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+</project>
\ No newline at end of file
diff --git a/rcomp-index/rcomp-example.bndrun b/rcomp-index/rcomp-example.bndrun
new file mode 100644
index 0000000..604baef
--- /dev/null
+++ b/rcomp-index/rcomp-example.bndrun
@@ -0,0 +1,53 @@
+#-standalone: ${.}/target/index.xml
+
+-standalone: true
+-plugin.enroute-distro = \
+    aQute.bnd.repository.maven.pom.provider.BndPomRepository; \
+        snapshotUrls=https://oss.sonatype.org/content/repositories/osgi/; \
+        releaseUrls=https://repo1.maven.org/maven2/; \
+        pom=${.}/pom.xml; \
+        name=rcomp
+
+-runsystemcapabilities: ${native_capability}
+
+-resolve.effective: active;skip:="osgi.service"
+
+-runblacklist: osgi.identity;filter:='(osgi.identity=slf4j.api)'
+
+-runfw: org.apache.felix.framework;version='[5.4.0,5.4.0]'
+-runee: JavaSE-1.8
+
+-runsystempackages: sun.misc,javax.annotation.meta
+
+-runproperties: \
+    osgi.console=8102,\
+	aries.rsa.hostname=172.17.0.1,\
+	felix.cm.loglevel=4,\
+	org.osgi.framework.bootdelegation=*,\
+	felix.fileinstall.log.level=4,\
+	org.ops4j.pax.logging.DefaultServiceLog.level=INFO,\
+	felix.fileinstall.dir=./etc,\
+	felix.fileinstall.noInitialDelay=true,\
+	felix.fileinstall.enableConfigSave=false
+-runrequires: \
+	osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.jline)',\
+	osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.command)',\
+	osgi.identity;filter:='(osgi.identity=rcomp-examples)',\
+	osgi.identity;filter:='(osgi.identity=rcomp-eventadmin)',\
+	osgi.identity;filter:='(osgi.identity=rcomp-mqtt)'
+-runbundles: \
+	io.projectreactor.reactor-core;version='[3.0.7,3.0.8)',\
+	org.apache.felix.scr;version='[2.0.2,2.0.3)',\
+	org.ops4j.pax.logging.pax-logging-api;version='[1.8.5,1.8.6)',\
+	org.reactivestreams.reactive-streams;version='[1.0.0,1.0.1)',\
+	rcomp-api;version='[1.0.0,1.0.1)',\
+	rcomp-examples;version='[1.0.0,1.0.1)',\
+	org.apache.felix.bundlerepository;version='[1.6.0,1.6.1)',\
+	org.apache.felix.gogo.command;version='[1.0.0,1.0.1)',\
+	org.apache.felix.gogo.jline;version='[1.0.0,1.0.1)',\
+	org.apache.felix.gogo.runtime;version='[1.0.0,1.0.1)',\
+	org.jline;version='[3.0.1,3.0.2)',\
+	rcomp-eventadmin;version='[1.0.0,1.0.1)',\
+	org.eclipse.paho.client.mqttv3;version='[1.1.1,1.1.2)',\
+	rcomp-mqtt;version='[1.0.0,1.0.1)',\
+	osgi.cmpn;version='[4.3.1,4.3.2)'
\ No newline at end of file
