Initial changes

Tasks left:

* [ ] Finish models
* [ ] Create tasks
* [ ] Wire up tasks to models on save
* [ ] Create initial migration for models
* [ ] Tests