I am still unsure of the concept of [weak self]. More or less I am learning (so i think) that it is a way to control the reference counting for the particular variables being referenced. In addition to this I have added the line guard let self = self else { return } to avoid the need for the optional binding. I do not know however if this interferes with the referencing count or if it messes with the need for weak self. I know it is a much longer topic to go through but if you could point me towards some resources that clear it up or a quick explanation that would be greatly appreciated!
In addition i am trying to implement weak self in the other projects and am also implementing LBTATools in all of your older projects that don't have it to keep them up to date. I just want to make sure i am updating things correctly.