Observer pattern with builtin observable and observar classes