tighten interface requirements -- we don't need to decrypt to save
return earlier and flatten indentation level