refactored to use active support concern
refactored to use active support concern