small curiosity here, could we move this down into the storage abstraction and handle bifurcation there?