added pragmatic bookshelf