public bool PropagatePropertyIfApplicable(Signal target) { if(target == null) throw new ArgumentNullException("target"); if(!target.HasProperty(providedPropertyId) && WouldBePropagatedTo(target)) buildProperty(target); return target.HasProperty(providedPropertyId); }