https://medium.com/@ahmetemreboyaci/understanding-automatic-reference-counting-arc-in-swift-2270741b500b