Observer pattern

The observer parretn has a bunch of observers which are notified about state changes