objective-c library for the nstrct protocol