diff --git a/src/RuleCollection.php b/src/RuleCollection.php
index <HASH>..<HASH> 100644
--- a/src/RuleCollection.php
+++ b/src/RuleCollection.php
@@ -118,21 +118,26 @@ class RuleCollection
     public function __construct(RuleLocator $rule_locator)
     {
         $this->rule_locator = $rule_locator;
+        $this->init();
     }
 
-    public function __invoke(&$data)
+    public function __invoke(&$subject)
     {
-        if ($this->values($data)) {
+        if ($this->values($subject)) {
             return true;
         }
 
-        $message = 'array';
-        $e = new Exception\FilterFailed($message);
+        $e = new Exception\FilterFailed(get_class($this));
         $e->setFilterMessages($this->getMessages());
-        $e->setFilterSubject($data);
+        $e->setFilterSubject($subject);
         throw $e;
     }
 
+    protected function init()
+    {
+        // by default do nothing
+    }
+
     /**
      *
      * Sets a single rule, encapsulated by a closure, for the rule.
add init() method for self-initialization if needed