if (reservedNames.contains(subject))
throw new IllegalArgumentException("cannot modify or subscribe to reserved service: " + subject);
final String toSubscribe = "local:".concat(subject);
DeliveryPlan plan = createOrAddDeliveryPlan(toSubscribe, receiver);
fireSubscribeListeners(new SubscriptionEvent(false, false, true, true, plan.getTotalReceivers(), "InBus", toSubscribe));
return new Subscription() {
@Override
public void remove() {
removeFromDeliveryPlan(toSubscribe, receiver);