Here id is a pointer that hold an object.
and tracker is an instance that conforms to GAITracker protocol.
Protocols make it possible for two classes distantly related by inheritance to communicate with each other to accomplish a certain goal. They thus offer an alternative to subclassing.