diff --git a/src/funcheck/CPComponent.scala b/src/funcheck/CPComponent.scala
index e049328f2f1e97e58d25bd2e9c036a3574bec7a2..c7e016be827533b89bcb7a33d01d5b3bdb0e13d8 100644
--- a/src/funcheck/CPComponent.scala
+++ b/src/funcheck/CPComponent.scala
@@ -3,7 +3,7 @@ package funcheck
 import scala.tools.nsc._
 import scala.tools.nsc.plugins._
 
-class CPComponent(val global: Global, val pluginInstance: FunCheckPlugin)
+class CPComponent(val global: Global, val pluginInstance: CPPlugin)
   extends PluginComponent
   with CodeExtraction
   with Serialization
diff --git a/src/funcheck/Extractors.scala b/src/funcheck/Extractors.scala
index 3b540a735526dd6a752f3dfe2642b4c64a822540..bf92c52e2717c3e918250d215520fd2434851fb2 100644
--- a/src/funcheck/Extractors.scala
+++ b/src/funcheck/Extractors.scala
@@ -5,7 +5,7 @@ import scala.tools.nsc._
 /** Contains extractors to pull-out interesting parts of the Scala ASTs. */
 trait Extractors {
   val global: Global
-  val pluginInstance: FunCheckPlugin
+  val pluginInstance: AbstractPlugin
 
   import global._
   import global.definitions._
diff --git a/src/funcheck/FunCheckPlugin.scala b/src/funcheck/FunCheckPlugin.scala
index ceb7611f15320eb3962806e306336f9a529a0956..247c77f37dae6c37517c1961088bbb4e0b5fd72d 100644
--- a/src/funcheck/FunCheckPlugin.scala
+++ b/src/funcheck/FunCheckPlugin.scala
@@ -5,7 +5,7 @@ import scala.tools.nsc.{Global,Phase}
 import scala.tools.nsc.plugins.{Plugin,PluginComponent}
 
 /** This class is the entry point for the plugin. */
-class FunCheckPlugin(val global: Global) extends Plugin {
+class FunCheckPlugin(val global: Global) extends AbstractPlugin {
   import global._
 
   val name = "funcheck"
@@ -13,7 +13,6 @@ class FunCheckPlugin(val global: Global) extends Plugin {
 
   var stopAfterAnalysis: Boolean = true
   var stopAfterExtraction: Boolean = false
-  var silentlyTolerateNonPureBodies: Boolean = false
 
   /** The help message displaying the options for that plugin. */
   override val optionsHelp: Option[String] = Some(