UserEvent Observator pattern implemented with basic methods