update to M3 and observables