implemented external storage