refactored view classes