protected function loadRules()
    {
        $old_cwd = getcwd();
        chdir(__DIR__);
        $path = 'Validate' . DIRECTORY_SEPARATOR . 'Rules';
        if (! is_dir($path)) {
            throw new ValidateException("Rules Directory " . $path . " isn't a directory...");
        }
        
        $files = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($path), \RecursiveIteratorIterator::LEAVES_ONLY);
        
        foreach ($files as $file) {
            if (! $file->isDir()) {
                $name = '\\JaegerApp\\' . str_replace('/', '\\', str_replace('.php', '', $file->getPathname()));
                $class = $name;
                if (class_exists($class)) {
                    $rule = new $class();
                    if ($rule instanceof Validate\RuleInterface) {
                        self::addRule($rule->getName(), array(
                            $rule,
                            'validate'
                        ), $rule->getErrorMessage());
                    }
                }
            }
        }
        
        chdir($old_cwd);
    }