public static function instance($options = [])
    {
        $class = static::classname($options);

        if (isset($options['args'])) {
            $refl = new ReflectionClass($class);
            $instance = $refl->newInstanceArgs($options['args']);
        } else {
            $instance = new $class();
        }
        if (isset($options['stubMethods']) && is_array($options['stubMethods'])) {
            foreach ($options['stubMethods'] as $name => $return) {
                allow($instance)->toReceive($name)->andReturn($return);
            }
        }
        if (isset($options['fakeMethods']) && is_array($options['fakeMethods'])) {
            foreach ($options['fakeMethods'] as $name => $callback) {
                allow($instance)->toReceive($name)->andRun($callback);
            }
        }
        return $instance;
    }