adding persistence layer