add #hattr_reader_with_default