caller passes key into Save method instead of having it returned