updated by Swift Blog