def _save_(self, href, resource, return_type):

        assert_instance(resource, Resource, "resource")
        assert_subclass(return_type, Resource, "return_type")

        q_href = self._qualify_(href) if self._needs_to_be_fully_qualified_(href) else href

        response = self._execute_request_('post', q_href, json.dumps(self._to_dict_(resource)))

        return  self.resource_factory.instantiate(return_type, response)
    def instantiate(self, resource_clazz, resource_properties = {}):

        assert_subclass(resource_clazz, Resource, "resource_clazz")

        return resource_clazz(self.data_store, resource_properties)