public function getAll(array $targets, array $subjects): array
    {
        $acls = [];
        if ($this->strategy instanceof MultiStrategy) {
            $acls = $this->strategy->loadAll($targets, $subjects, $this);
        } else {
            foreach ($targets as $target) {
                $acls[(string)$target] = $this->strategy->load($target, $subjects, $this);
            }
        }
        $missing = array_diff(array_map(function ($a) {
            return (string) $a;
        }, $targets), array_keys($acls));
        // Check every requested target was found
        if (!empty($missing)) {
            throw new Exception\Unloadable("Unable to load ACL for " . implode(", ", $missing));
        }
        return $acls;
    }