add Swift support