prepared persistence layer