- no longer throws an incorrect type of error - checks whether cache exists before attempting to decrypt it