Migrated to the latest Swift