implement RangeValue pattern
RangeValue#read_only?
use more StructAttributes