Updated this component to use Modern objective-c and changed the API a littel bit