restore function