fix some bugs
finish bookshelf operations