(Ross) added restore functionality along with a few other things
merged with master/ross's user_helper