Full functionality minus GoodReads API integration