public function addEntry(PoEntry $entry, bool $replace = true): bool
    {
        $key = $this->createKeyFromEntry($entry);

        // some entires, such as obsolete entries, have no key
        // for some uses, these are dead weight - need better strategy for that case
        if (empty($key)) {
            $this->unkeyedEntries[] = $entry;
            return true;
        }

        if (isset($this->entries[$key]) && !$replace) {
            return false;
        } else {
            $this->entries[$key] = $entry;
            return true;
        }
    }