diff --git a/src/main/java/kieker/analysis/plugin/filter/sink/CPUUtilizationDisplayFilter.java b/src/main/java/kieker/analysis/plugin/filter/sink/CPUUtilizationDisplayFilter.java
index 7db39869068e5fe98265c9022adcaced633f6083..bc1bf3d73ecc8e82ec42296d52be17c1ae55e7f0 100644
--- a/src/main/java/kieker/analysis/plugin/filter/sink/CPUUtilizationDisplayFilter.java
+++ b/src/main/java/kieker/analysis/plugin/filter/sink/CPUUtilizationDisplayFilter.java
@@ -20,36 +20,21 @@ import java.util.Arrays;
 import java.util.Date;
 import java.util.concurrent.TimeUnit;
 
-import kieker.analysis.IProjectContext;
 import kieker.analysis.display.MeterGauge;
 import kieker.analysis.display.XYPlot;
 import kieker.analysis.display.annotation.Display;
-import kieker.analysis.plugin.annotation.Plugin;
-import kieker.analysis.plugin.annotation.Property;
-import kieker.analysis.plugin.filter.AbstractKiekerFilter;
-import kieker.common.configuration.Configuration;
 import kieker.common.record.system.CPUUtilizationRecord;
 
+import teetime.stage.basic.AbstractFilter;
+
 /**
  * This is a filter which accepts {@link CPUUtilizationRecord} instances and provides different views to visualize them.
  *
- * @author Bjoern Weissenfels, Nils Christian Ehmke
+ * @author Bjoern Weissenfels, Nils Christian Ehmke, Lars Erik Bluemke
  *
  * @since 1.8
  */
-@Plugin(configuration = {
-	@Property(name = CPUUtilizationDisplayFilter.CONFIG_PROPERTY_NAME_NUMBER_OF_ENTRIES, defaultValue = CPUUtilizationDisplayFilter.CONFIG_PROPERTY_VALUE_NUMBER_OF_ENTRIES, description = "Sets the number of max plot entries per cpu"),
-	@Property(name = CPUUtilizationDisplayFilter.CONFIG_PROPERTY_NAME_DISPLAY_WARNING_INTERVALS, defaultValue = CPUUtilizationDisplayFilter.CONFIG_PROPERTY_VALUE_DISPLAY_WARNING_INTERVALS) })
-@SuppressWarnings("rawtypes")
-public class CPUUtilizationDisplayFilter extends AbstractKiekerFilter {
-
-	public static final String INPUT_PORT_NAME_EVENTS = "inputEvents";
-
-	public static final String CONFIG_PROPERTY_NAME_NUMBER_OF_ENTRIES = "numberOfEntries";
-	public static final String CONFIG_PROPERTY_VALUE_NUMBER_OF_ENTRIES = "100";
-
-	public static final String CONFIG_PROPERTY_NAME_DISPLAY_WARNING_INTERVALS = "displayWarningIntervals";
-	public static final String CONFIG_PROPERTY_VALUE_DISPLAY_WARNING_INTERVALS = "70|90|100";
+public class CPUUtilizationDisplayFilter extends AbstractFilter<CPUUtilizationRecord> {
 
 	private static final String TOTAL_UTILIZATION = "totalUtilization";
 	private static final String IDLE = "idle";
@@ -64,17 +49,12 @@ public class CPUUtilizationDisplayFilter extends AbstractKiekerFilter {
 	private final int numberOfEntries;
 	private final Number[] warningIntervals;
 
-	public CPUUtilizationDisplayFilter(final Configuration configuration, final IProjectContext projectContext) {
-		super(configuration, projectContext);
-
-		// Read the configuration
-		this.numberOfEntries = configuration.getIntProperty(CONFIG_PROPERTY_NAME_NUMBER_OF_ENTRIES);
+	private final TimeUnit recordsTimeUnit;
 
-		final String[] warningIntervalsAsString = configuration.getStringArrayProperty(CONFIG_PROPERTY_NAME_DISPLAY_WARNING_INTERVALS);
-		this.warningIntervals = new Number[warningIntervalsAsString.length];
-		for (int i = 0; i < warningIntervalsAsString.length; i++) {
-			this.warningIntervals[i] = Long.parseLong(warningIntervalsAsString[i]);
-		}
+	public CPUUtilizationDisplayFilter(final int numberOfEntries, final Long[] warningIntervals, final TimeUnit recordsTimeUnit) {
+		this.numberOfEntries = numberOfEntries;
+		this.warningIntervals = warningIntervals;
+		this.recordsTimeUnit = recordsTimeUnit;
 
 		// Create the display objects
 		this.meterGauge = new MeterGauge();
@@ -82,18 +62,13 @@ public class CPUUtilizationDisplayFilter extends AbstractKiekerFilter {
 	}
 
 	@Override
-	protected void execute(final Object record) {
-		if (record instanceof CPUUtilizationRecord) {
-			this.updateDisplays((CPUUtilizationRecord) record);
-		} else {
-			throw new IllegalArgumentException("Argument must be of type CPUUtilizationRecord.");
-		}
-
+	protected void execute(final CPUUtilizationRecord record) {
+		this.updateDisplays(record);
 	}
 
 	private void updateDisplays(final CPUUtilizationRecord record) {
 		// Calculate the minutes and seconds of the logging timestamp of the record
-		final Date date = new Date(TimeUnit.MILLISECONDS.convert(record.getLoggingTimestamp(), super.recordsTimeUnitFromProjectContext));
+		final Date date = new Date(TimeUnit.MILLISECONDS.convert(record.getLoggingTimestamp(), recordsTimeUnit));
 		final String minutesAndSeconds = date.toString().substring(14, 19);
 
 		final String id = record.getHostname() + " - " + record.getCpuID();
@@ -119,14 +94,4 @@ public class CPUUtilizationDisplayFilter extends AbstractKiekerFilter {
 		return this.xyplot;
 	}
 
-	@Override
-	public Configuration getCurrentConfiguration() {
-		final Configuration configuration = new Configuration();
-
-		configuration.setProperty(CONFIG_PROPERTY_NAME_NUMBER_OF_ENTRIES, String.valueOf(this.numberOfEntries));
-		configuration.setProperty(CONFIG_PROPERTY_NAME_DISPLAY_WARNING_INTERVALS, Configuration.toProperty(this.warningIntervals));
-
-		return configuration;
-	}
-
 }