Changed from an interface to abstract class for StorageBackend. This
allows me to require a specific constructor format for my instantiation
code to use.