Move Shelf instantiation complexity to the record