wired up delegatio with a protocol