delegateを周りを強化して遅延評価できるようにしても、
delegateを関数の外に持ち出せないのでは
いまいち迫力に欠ける