Can I define some default protocol function implementations, so that I can get rid of the @obj and optionals.