diff --git a/src/main/java/org/apache/sling/feature/inventoryservice/impl/AbstractFeatureInventoryPrinter.java b/src/main/java/org/apache/sling/feature/inventoryservice/impl/AbstractFeatureInventoryPrinter.java
index 63ba605..536b334 100644
--- a/src/main/java/org/apache/sling/feature/inventoryservice/impl/AbstractFeatureInventoryPrinter.java
+++ b/src/main/java/org/apache/sling/feature/inventoryservice/impl/AbstractFeatureInventoryPrinter.java
@@ -18,6 +18,8 @@
  */
 package org.apache.sling.feature.inventoryservice.impl;
 
+import static org.apache.sling.feature.io.json.FeatureJSONWriter.write;
+
 import java.io.PrintWriter;
 
 import org.apache.felix.inventory.Format;
@@ -27,20 +29,21 @@
 
 abstract class AbstractFeatureInventoryPrinter implements InventoryPrinter {
 
-
     protected RuntimeEnvironment2FeatureModel generator;
 
     @Override
     public final void print(PrintWriter printWriter, Format format, boolean isZip) {
         try {
-            Feature launchFeature = generator.getLaunchFeature();
-            onLaunchFeature(launchFeature, printWriter);
+            Feature computedFeature = getComputedFeature();
+            write(printWriter, computedFeature);
         } catch (Throwable t) {
             t.printStackTrace(printWriter);
         }
         printWriter.println();
     }
 
-    protected abstract void onLaunchFeature(Feature launchFeature, PrintWriter printWriter) throws Exception;
+    protected abstract Feature getComputedFeature();
+
+    
 
 }
diff --git a/src/main/java/org/apache/sling/feature/inventoryservice/impl/AbstractRuntimeEnvironment2FeatureModelPrinter.java b/src/main/java/org/apache/sling/feature/inventoryservice/impl/AbstractRuntimeEnvironment2FeatureModelPrinter.java
deleted file mode 100644
index 8d1bdeb..0000000
--- a/src/main/java/org/apache/sling/feature/inventoryservice/impl/AbstractRuntimeEnvironment2FeatureModelPrinter.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with this
- * work for additional information regarding copyright ownership. The ASF
- * licenses this file to You 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.
- */
-package org.apache.sling.feature.inventoryservice.impl;
-
-import static org.apache.sling.feature.io.json.FeatureJSONWriter.write;
-
-import java.io.PrintWriter;
-
-import org.apache.sling.feature.Feature;
-
-abstract class AbstractRuntimeEnvironment2FeatureModelPrinter extends AbstractFeatureInventoryPrinter {
-
-    @Override
-    protected void onLaunchFeature(Feature launchFeature, PrintWriter printWriter) throws Exception {
-        Feature runtimeFeature = generator.getRuntimeFeature();
-
-        Feature computedFeature = compute(launchFeature, runtimeFeature);
-
-        write(printWriter, computedFeature);
-    }
-
-    protected abstract Feature compute(Feature launchFeature, Feature runtimeFeature);
-
-}
diff --git a/src/main/java/org/apache/sling/feature/inventoryservice/impl/FeaturesInventoryPrinter.java b/src/main/java/org/apache/sling/feature/inventoryservice/impl/FeaturesInventoryPrinter.java
index 3e352eb..f348b52 100644
--- a/src/main/java/org/apache/sling/feature/inventoryservice/impl/FeaturesInventoryPrinter.java
+++ b/src/main/java/org/apache/sling/feature/inventoryservice/impl/FeaturesInventoryPrinter.java
@@ -21,9 +21,6 @@
 import static org.apache.felix.inventory.InventoryPrinter.FORMAT;
 import static org.apache.felix.inventory.InventoryPrinter.NAME;
 import static org.apache.felix.inventory.InventoryPrinter.TITLE;
-import static org.apache.sling.feature.io.json.FeatureJSONWriter.write;
-
-import java.io.PrintWriter;
 
 import org.apache.felix.inventory.InventoryPrinter;
 import org.apache.sling.feature.Feature;
@@ -45,8 +42,8 @@
 public class FeaturesInventoryPrinter extends AbstractFeatureInventoryPrinter {
 
     @Override
-    protected void onLaunchFeature(Feature launchFeature, PrintWriter printWriter) throws Exception {
-        write(printWriter, launchFeature);
+    protected Feature getComputedFeature() {
+        return generator.getLaunchFeature();
     }
 
 }
diff --git a/src/main/java/org/apache/sling/feature/inventoryservice/impl/Launch2RuntimeInventoryPrinter.java b/src/main/java/org/apache/sling/feature/inventoryservice/impl/Launch2RuntimeInventoryPrinter.java
index d43eca9..32a02f0 100644
--- a/src/main/java/org/apache/sling/feature/inventoryservice/impl/Launch2RuntimeInventoryPrinter.java
+++ b/src/main/java/org/apache/sling/feature/inventoryservice/impl/Launch2RuntimeInventoryPrinter.java
@@ -19,12 +19,9 @@
 import static org.apache.felix.inventory.InventoryPrinter.FORMAT;
 import static org.apache.felix.inventory.InventoryPrinter.NAME;
 import static org.apache.felix.inventory.InventoryPrinter.TITLE;
-import static org.apache.sling.feature.diff.FeatureDiff.compareFeatures;
 
 import org.apache.felix.inventory.InventoryPrinter;
-import org.apache.sling.feature.ArtifactId;
 import org.apache.sling.feature.Feature;
-import org.apache.sling.feature.diff.DiffRequest;
 import org.apache.sling.feature.r2f.RuntimeEnvironment2FeatureModel;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Reference;
@@ -40,22 +37,11 @@
         @Reference(field = "generator", name = "generator", service = RuntimeEnvironment2FeatureModel.class)
     }
 )
-public class Launch2RuntimeInventoryPrinter extends AbstractRuntimeEnvironment2FeatureModelPrinter {
+public class Launch2RuntimeInventoryPrinter extends AbstractFeatureInventoryPrinter {
 
     @Override
-    protected Feature compute(Feature launchFeature, Feature runtimeFeature) {
-        Feature featureDiff = compareFeatures(new DiffRequest()
-                                              .setPrevious(launchFeature)
-                                              .setCurrent(runtimeFeature)
-                                              .addIncludeComparator("bundles")
-                                              .addIncludeComparator("configurations")
-                                              .setResultId(new ArtifactId(runtimeFeature.getId().getGroupId(),
-                                                                          runtimeFeature.getId().getArtifactId(), 
-                                                                          runtimeFeature.getId().getVersion(),
-                                                                          runtimeFeature.getId().getClassifier() + "_updater",
-                                                                          runtimeFeature.getId().getType())));
-
-        return featureDiff;
+    protected Feature getComputedFeature() {
+        return generator.getLaunch2RuntimeUpgradingFeature();
     }
 
 }
diff --git a/src/main/java/org/apache/sling/feature/inventoryservice/impl/RuntimeInventoryPrinter.java b/src/main/java/org/apache/sling/feature/inventoryservice/impl/RuntimeInventoryPrinter.java
index c9e538a..8f7fc1a 100644
--- a/src/main/java/org/apache/sling/feature/inventoryservice/impl/RuntimeInventoryPrinter.java
+++ b/src/main/java/org/apache/sling/feature/inventoryservice/impl/RuntimeInventoryPrinter.java
@@ -37,11 +37,11 @@
         @Reference(field = "generator", name = "generator", service = RuntimeEnvironment2FeatureModel.class)
     }
 )
-public final class RuntimeInventoryPrinter extends AbstractRuntimeEnvironment2FeatureModelPrinter {
+public final class RuntimeInventoryPrinter extends AbstractFeatureInventoryPrinter {
 
     @Override
-    protected Feature compute(Feature previousFeature, Feature currentFeature) {
-        return currentFeature;
+    protected Feature getComputedFeature() {
+        return generator.getRuntimeFeature();
     }
 
 }
