write_attribute is private - so don't call it on self