synchronization here looks odd -- why take `subscriptions`, synch on it, then set a copy `subscriptionsCopy` from the same getter?