Refactored for recursive process description