core persistence
refactoring