Refactor ExtraStorage to allow more backends