just use ActiveSupport::Concern