(Ross) added restore functionality along with a few other things