Swift implenenation
Merge branch 'swift'