Actually, on looking into this a bit more, I see why this is called `update`, but it's doing multiple roles: it's a public method updating attributes from the controller, an internal method of setting attributes internally, and a validator for the attribute keys which are passed to it. Something about that seems a bit iffy. 

Is there a better way this could be split? Could the validation & assignment of attributes happen in another method, so that `initialize` doesn't have to call this? Or am I over-thinking this a bit?