introduction for attr_writer