badges
factor out a persistence layer
factor file existence check to persitence layer
towards full abstraction of persistence layer (with TODOs)