add Send+Sync as supertraits for View and Observer and notify() immutable
we can directly use Option<T> without wrapping it