Optional protocol items

Optional requires objc!
Just a thought :)