bookshelf interface