public function addReference($identifier, $value, $overwrite = false)
    {
        if (array_key_exists($identifier, $this->references) && !$overwrite) {
            throw new \Exception("A reference with identifier '$identifier' already exists");
        }

        $this->references[$identifier] = $value;

        return true;
    }