added bookshelves controller and tests