allow core urls to change, and handle some errors better