Preliminary bookshelf support
Add optional bookshelf requirement