private static function getExtractorClosure($object)
    {
        if (!isset(self::$extractorClosure)) {
            self::$extractorClosure = function($object) {
                return get_object_vars($object);
            };
        }

        $class = get_class($object);

        if (!isset(self::$extractorClosureCache[$class])) {
            self::$extractorClosureCache[$class] = \Closure::bind(self::$extractorClosure, null, $class);
        }

        return self::$extractorClosureCache[$class];
    }