added advanced data persistence