more functional object store