refactored option 5