Thanks again. I got it working in the end. I was running into weird issues I think because I was testing if passage.Continue() == string.Empty but of course that was continuing the passage and messing everything up. I realised after a bit that I could do string = passage.Continue() then test that to see if it was empty.