public static function targetMethodsOf($object, string $group = null): Sequence
    {
        return methodsOf($object, \ReflectionMethod::IS_PUBLIC)->filter(
                function(\ReflectionMethod $method) use ($group)
                {
                    if ($method->isStatic() || $method->isConstructor() || $method->isDestructor()) {
                        return false;
                    }

                    if (!annotationsOf($method)->contain('Request')) {
                        return false;
                    }

                    if (empty($group) || annotationsOf($method)->firstNamed('Request')->paramGroup() === $group) {
                        return true;
                    }

                    return false;
                }
        )->map(
                function(\ReflectionMethod $method)
                {
                    return new TargetMethod(
                            $method,
                            annotationsOf($method)->firstNamed('Request')
                    );
                }
        );
    }