public function store($object)
    {
        if (!is_object($object)) {
            throw new InvalidArgumentException(1, 'object');
        }

        $objects = array();
        $id = $this->doStore($this->freezer->freeze($object, $objects));

        if ($id !== null) {
            $object->{$this->freezer->getIdProperty()} = $id;
        }

        return $object->{$this->freezer->getIdProperty()};
    }