add shelve functionnalities