before observables refactoring