Use a real Markov chain
Speak the domain by default
Fix a few notices caused by undefined variables
Make various improvements
Clean up the whole thing