Flutter observer pattern

Combine with provider to access subject anywhere instead of static approach