use self instead of #read_attribute