renamed cache() to save()