Designing an access layer for shelve