Added persistence abstract class and refactored report