use a dedicated class for observers list in ObserverSubject instead of Hash<Dynamic>