reactored GeneralStore -> AbstractStore