Refactor for easier addition of alternate book data sources