new class Protocol