refactoring profile*