improve persistence layer