Refactor using ActiveSupport Concern, Callbacks