<NME> README.md
<BEF> # Warlock!

1) Create a class

    import warlock

	schema = {
	    'name': 'Country',
	    'properties': {
	        'name': {'type': 'string'},
	        'abbreviation': {'type': 'string'},
	    },
	}

	Country = warlock.model_factory(schema)

2) Create an object using your class

	sweden = Country(name='Sweden', abbreviation='SE')

3) Let the object validate itself!

    sweden.name = 5
    # Raises ValueError

    sweden.overlord = 'Bears'
    # Raises AttributeError
    >>> Country = warlock.model_factory(schema)
    ```

3) Create an object using your model

    ```python
    >>> sweden = Country(name='Sweden', abbreviation='SE')
    ```

4) Let the object validate itself

    ```python
    >>> sweden.name = 5
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "warlock/core.py", line 53, in __setattr__
        raise InvalidOperation(msg)
    warlock.core.InvalidOperation: Unable to set 'name' to '5'

    >>> sweden.overlord = 'Bears'
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "warlock/core.py", line 53, in __setattr__
        raise InvalidOperation(msg)
    warlock.core.InvalidOperation: Unable to set 'overlord' to 'Bears'
    ```

5) Generate a [JSON Patch document](http://tools.ietf.org/html/draft-ietf-appsawg-json-patch) to track changes

    ```python
    >>> sweden.population=9453000
    >>> sweden.patch
    '[{"path": "/population", "value": 9453000, "op": "add"}]'
    ```

[warlock]: https://pypi.org/project/warlock/
[pip]: https://pip.pypa.io/en/stable/
[ci-builds]: https://github.com/bcwaldon/warlock/actions/workflows/ci.yaml
[coveralls]: https://coveralls.io/github/bcwaldon/warlock?branch=master
[poetry]: https://poetry.eustace.io/docs/
[pypistats]: https://pypistats.org/packages/warlock

<MSG> Update README.md

<DFF> @@ -1,27 +1,43 @@
 # Warlock!
 
-1) Create a class
+## Wat
 
-    import warlock
+Build self-validating python objects using JSON schemas
 
-	schema = {
+## How
+
+1) Build your schema
+
+	>>> schema = {
 	    'name': 'Country',
 	    'properties': {
 	        'name': {'type': 'string'},
 	        'abbreviation': {'type': 'string'},
 	    },
+	    'additionalProperties': False,
 	}
 
-	Country = warlock.model_factory(schema)
+2) Create a model
+
+    >>> import warlock
+	>>> Country = warlock.model_factory(schema)
 
-2) Create an object using your class
+3) Create an object using your model
 
-	sweden = Country(name='Sweden', abbreviation='SE')
+	>>> sweden = Country(name='Sweden', abbreviation='SE')
 
-3) Let the object validate itself!
+4) Let the object validate itself!
 
-    sweden.name = 5
-    # Raises ValueError
+    >>> sweden.name = 5
+    Traceback (most recent call last):
+	  File "<stdin>", line 1, in <module>
+      File "warlock/core.py", line 53, in __setattr__
+        raise InvalidOperation()
+	warlock.core.InvalidOperation
 
-    sweden.overlord = 'Bears'
-    # Raises AttributeError
+    >>> sweden.overlord = 'Bears'
+    Traceback (most recent call last):
+	  File "<stdin>", line 1, in <module>
+      File "warlock/core.py", line 53, in __setattr__
+        raise InvalidOperation()
+	warlock.core.InvalidOperation
\ No newline at end of file

Update README.md