and using unicode chars instead of X and _, dangit!
including adding random initial state generation.
since I had a decent amount of practice at http://globalday.coderetreat.org/