Shelf variant ?

I have made some proposals to be changed in a new class Shelf2,
basically copied from the original one, with some changes.