refactoring profile model