simple mvvm frame.