public void ListenTo(ITrackable activationCatalyst) { if (_activationCatalyst != null) { throw new System.InvalidOperationException($"World cannot listen to multiple catalysts at a time."); } _activationCatalyst = activationCatalyst; PositionTracker.Subscribe(activationCatalyst, OnPositionUpdate); var position = PositionTracker.GetCurrentPosition(activationCatalyst); OnPositionUpdate(activationCatalyst, null, position); }