add event & observs