ODG::Record ODG::Layout ODG::Metadata ODG::Record::Buffered ODG::RecordSet ODG::RecordSet::Sorted If we have a base class and want to extend it use extends. If we want add functionality use Role/with. ODG::Record::Sorted should extend ODG::Record ODG::Record - Simply takes the _layout_ and installs accessors. If we use index ... how do we set up the class to use the index. ODG::Record::BUILD will look through the attributes and install based on the index value ODG::Record::DBI will use ArrayRef to look through the records and install based on the DBI ODG::RecordSet::DBI What is the minimum we need to do. 1) Hardcode.