Added counter and observer pattern style events