added abstract Memory