diff --git a/sliapi/springboot/pom.xml b/sliapi/springboot/pom.xml
index 6bdb139..8e88945 100644
--- a/sliapi/springboot/pom.xml
+++ b/sliapi/springboot/pom.xml
@@ -94,10 +94,30 @@
 			<artifactId>logging-filter-spring</artifactId>
 			<version>1.6.4</version>
 		</dependency>
-        <dependency>
-            <groupId>javax.ws.rs</groupId>
-            <artifactId>javax.ws.rs-api</artifactId>
-        </dependency>
+		<dependency>
+			<groupId>javax.ws.rs</groupId>
+			<artifactId>javax.ws.rs-api</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.onap.ccsdk.sli.core</groupId>
+			<artifactId>sliPluginUtils-provider</artifactId>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.onap.ccsdk.sli.plugins</groupId>
+			<artifactId>restapi-call-node-provider</artifactId>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.onap.ccsdk.sli.plugins</groupId>
+			<artifactId>properties-node-provider</artifactId>
+			<version>${project.version}</version>
+		</dependency>
+		<!-- this jersey jar is needed for rest api call node to function properly -->
+		<dependency>
+			<groupId>org.glassfish.jersey.inject</groupId>
+			<artifactId>jersey-hk2</artifactId>
+		</dependency>
     </dependencies>
 
     <build>
diff --git a/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/core/ServletFilters.java b/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/core/ServletFilters.java
deleted file mode 100644
index bfec1c9..0000000
--- a/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/core/ServletFilters.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - CCSDK
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.core.sliapi.springboot.core;
-
-import javax.servlet.ServletException;
-
-import org.onap.logging.filter.base.PayloadLoggingServletFilter;
-import org.springframework.boot.web.servlet.FilterRegistrationBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-public class ServletFilters {
-
-/*	@Bean
-	public FilterRegistrationBean<PayloadLoggingServletFilter> payloadFilterRegistration() throws ServletException {
-		FilterRegistrationBean<PayloadLoggingServletFilter> registration = new FilterRegistrationBean<PayloadLoggingServletFilter>();
-		registration.setFilter(new PayloadLoggingServletFilter());
-		registration.addUrlPatterns("/*");
-		registration.setName("payloadFilter");
-		registration.setOrder(0);
-		return registration;
-	}*/
-}
\ No newline at end of file
diff --git a/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/core/SvcLogicFactory.java b/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/core/SvcLogicFactory.java
index a6bda81..9b521e4 100644
--- a/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/core/SvcLogicFactory.java
+++ b/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/core/SvcLogicFactory.java
@@ -22,9 +22,12 @@
 
 import java.io.FileInputStream;
 import java.io.IOException;
+import java.util.List;
 import java.util.Properties;
 import org.onap.ccsdk.sli.core.sli.ConfigurationException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin;
 import org.onap.ccsdk.sli.core.sli.SvcLogicLoader;
+import org.onap.ccsdk.sli.core.sli.SvcLogicRecorder;
 import org.onap.ccsdk.sli.core.sli.SvcLogicStore;
 import org.onap.ccsdk.sli.core.sli.SvcLogicStoreFactory;
 import org.onap.ccsdk.sli.core.sli.provider.base.HashMapResolver;
@@ -32,8 +35,14 @@
 import org.onap.ccsdk.sli.core.sli.provider.base.SvcLogicResolver;
 import org.onap.ccsdk.sli.core.sli.provider.base.SvcLogicServiceBase;
 import org.onap.ccsdk.sli.core.sli.provider.base.SvcLogicServiceImplBase;
+import org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder;
+import org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils;
+import org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils;
+import org.onap.ccsdk.sli.plugins.prop.PropertiesNode;
+import org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
@@ -41,6 +50,12 @@
 public class SvcLogicFactory {
   private static final Logger log = LoggerFactory.getLogger(SvcLogicFactory.class);
 
+  @Autowired
+  List<SvcLogicRecorder> recorders;
+
+  @Autowired
+  List<SvcLogicJavaPlugin> plugins;
+
   @Bean
   public SvcLogicStore getStore() throws Exception {
     SvcLogicPropertiesProvider propProvider = new SvcLogicPropertiesProvider() {
@@ -84,8 +99,41 @@
 
   @Bean
   public SvcLogicServiceBase createService() throws Exception {
-    SvcLogicResolver resolver = new HashMapResolver();
+    HashMapResolver resolver = new HashMapResolver();
+    for (SvcLogicRecorder recorder : recorders) {
+      resolver.addSvcLogicRecorder(recorder.getClass().getName(), recorder);
+
+    }
+    for (SvcLogicJavaPlugin plugin : plugins) {
+      resolver.addSvcLogicSvcLogicJavaPlugin(plugin.getClass().getName(), plugin);
+
+    }
     return new SvcLogicServiceImplBase(getStore(), resolver);
   }
 
+  @Bean
+  public Slf4jRecorder slf4jRecorderNode() {
+    return new Slf4jRecorder();
+  }
+
+  @Bean
+  public SliPluginUtils sliPluginUtil() {
+    return new SliPluginUtils();
+  }
+
+  @Bean
+  public SliStringUtils sliStringUtils() {
+    return new SliStringUtils();
+  }
+  
+  @Bean
+  public RestapiCallNode restapiCallNode() {
+      return new RestapiCallNode();
+  }
+  
+  @Bean
+  public PropertiesNode propertiesNode() {
+      return new PropertiesNode();
+  }
+
 }
diff --git a/sliapi/springboot/src/main/resources/DEMO_DEMO.xml b/sliapi/springboot/src/main/resources/DEMO_DEMO.xml
new file mode 100755
index 0000000..1b304f1
--- /dev/null
+++ b/sliapi/springboot/src/main/resources/DEMO_DEMO.xml
@@ -0,0 +1,35 @@
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='DEMO' version='1'>
+    <method rpc='DEMO' mode='sync'>
+        <block>
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+                <parameter name="logger" value="message-log" />
+                <parameter name="level" value="error" />
+                <parameter name="field1" value="Slf4jRecorder must be working!" />
+            </record>
+            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID">
+                <parameter name="ctx-destination" value="requestID" />
+            </execute>
+            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="contains" emitsOutcome='true' >
+                <parameter name="source" value="TEAM" />
+                <parameter name="target" value="I" />
+            </execute>
+            <execute plugin="org.onap.ccsdk.sli.plugins.prop.PropertiesNode" method="readProperties" >
+                <parameter name="fileName" value="%SDNC_CONFIG_DIR%/aaf.properties" />
+                <parameter name="contextPrefix" value="tmp.props" />
+            </execute>
+            <execute plugin="org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode" method="sendRequest">
+                <parameter name="restapiUrl" value="http://127.0.0.1:8080/restconf/config/SLI-API:test-results/"/>
+                <parameter name="restapiUser" value="admin"/>
+                <parameter name="restapiPassword" value="test"/>
+                <parameter name="format" value="json" />
+                <parameter name="httpMethod" value="get" />
+                <parameter name="responsePrefix" value="restapi-result" />
+            </execute>
+            <return status='success'>
+                <parameter name='' value='' />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
diff --git a/sliapi/springboot/src/main/resources/graph.versions b/sliapi/springboot/src/main/resources/graph.versions
index 7f75be4..d21278a 100644
--- a/sliapi/springboot/src/main/resources/graph.versions
+++ b/sliapi/springboot/src/main/resources/graph.versions
@@ -1,2 +1,3 @@
 sli healthcheck 0.7.0 sync
 sli vlbcheck 0.7.0 sync
+DEMO DEMO 1 sync
