refactory Persistent