Interface correction

Realized that the persist method being public might actually be harmful so the interfaces were changed and some minor refactoring to the consumers were done.