add BaseViewModel code