A hypertext narrative engine