Use a protocol instead of crazy dynamic bindings.