MKTObjectAndProtocol inherits MKTObject to keep duplicate code as much as possible
Hide ivar for protocol