purpose model added
refactoring