Refactor store into drivers so backends can be pluggable