changed the interface to support the record class