Added restart, json, and save_state methods