implemented persistence