@classmethod
def create(cls, **fields):
    """Create a new document and saves it to the database.

        This is a convenience method to create a new document. It will
        instantiate a new ``Model`` from the keyword arguments,
        call ``save()``, and return the instance.

        If the model has the ``required_fields`` options set, a
        :class:`TypeError` will be raised if any of the fields are not
        provided.

        :param safe: (optional) **DEPRECATED** Use ``w`` instead.
        :type safe: bool.
        :param w: (optional) The number of servers that must receive the
                  update for it to be successful.
        :type w: int.
        :param \\*\\*fields: Keyword arguments to add to the document.
        :type \\*\\*fields: \\*\\*kwargs.
        :returns: :class:`~simon.Model` -- the new document.
        :raises: :class:`TypeError`

        """
    write_concern = {'safe': fields.pop('safe', None), 'w': fields.pop('w',
        None)}
    new = cls(**fields)
    new.save(**write_concern)
    return new
