complate the storage class and add spec test