refactored separation example