Since we are including ```ActiveModel::Validations``` i was assuming we'd be leaning towards using ```ActiveModel``` patterns. Though we are diverging by having the ```id``` as a separate argument and we only read these models anyway.
My suggestion was about encapsulating the ```setting attributes``` bits and also would be easier to override in subclasses if some extra behaviour was ever needed. It does not seem to be the case now but may come in handy later and it did not seem like a huge overhead.
But no biggy if we leave it as it is