refactoring both base model and view