private static void AddHandler(IInvocation invocation, INotifyInvocation propertyChangedInterceptor)
        {
            if (!Handlers.ContainsKey(invocation.InvocationTarget))
            {
                Handlers.Add(invocation.InvocationTarget, new Dictionary <string, PropertyChangedEventHandler>());
            }

            Handlers[invocation.InvocationTarget].Add(invocation.PropertyName(),
                                                      (o, e) => { propertyChangedInterceptor.Notify(invocation); });

            ((INotifyPropertyChanged)invocation.GetArgumentValue(0)).PropertyChanged +=
                Handlers[invocation.InvocationTarget][invocation.PropertyName()];
        }