model is refactored