entity persistence layer