I think this class can mainly be split up and either put directly on Application on worked into the persistence layer, perhaps an AbstractApplicationStore.