added swift support