add observer and observable