private function execute($callback, array $which, array $args = [])
    {
        if (! is_string($callback)) {
            throw new InvalidArgumentException('Foil callback name must be in a string.');
        }
        if (array_key_exists($callback, $which)) {
            return call_user_func_array($which[$callback], $args);
        }
        throw new LogicException('"'.$callback.'" is not a registered Foil callback.');
    }