NB: I've started to add comments to the models.* classes to explain their semantics which is most important for the `Author`