Extract narrative code into a new Narrator module