refactored methods for new model