some attempt to use bookshelf