Could use an `ActiveSupport::Concern` here to get the `included` DSL and avoid `class_eval`.