https://steipete.me/posts/2016/swifty-objective-c