Added PageBase and ViewModelBase, made IViewModel events not-async