The `CREATE` and `ALTER` modules have highlighted that the model and view are intertwined. These should be separated out into separate modules.