abstracted storage