extracted game delegate