How to build Angular applications in Reactive style using plain RxJs - Patterns and Lightweight state management