process refactored