First cut at abstracting away store into an interface