I did not anticipate multiple implementations actually. But, after writing the first implementation of the HashStoreFlashManager I didn't like the code much and wanted to extract that piece of logic that would be common to all stores. After decoupling those two pieces I was able to see an even better way to implement the Abstract part of it, so the approach had it's merits I guess.