Restructured Observer Design Pattern