refactored concern structure