make store interfaces serializable, implement store caching