//inherited/interface methods-------------------------------------------------------

    public void RenameMethod(string newName)
    {
        if (_method.Name.Equals(newName))
        {
            return;
        }

        if (!NameValidator.isNameValid(newName))
        {
            throw new ArgumentException("method name is Invalid!");
        }


        var newMethod = _method.Clone() as EventMethodInfo;

        newMethod.RenameMethod(newName);


        if (_containingGroup.ContainsMethod(newMethod))
        {
            throw new InvalidOperationException("method exists in group!");
        }


        _containingGroup.ReplaceMethod(_method, newMethod);
    }
    public EventMethodModifier(EventMethodsGroup containingGroup, EventMethodInfo method)
    {
        if (containingGroup == null || method == null)
        {
            throw new ArgumentException("arguments cannot be null!");
        }

        if (!containingGroup.ContainsMethod(method))
        {
            throw new ArgumentException("the method must be contained in the group in order!");
        }

        _containingGroup = containingGroup;
        _method          = method;
    }