Initial Commit
Enable Dictionaries or Lists to create the Machine
Add assertion checks
Add repr()
Make the class more logical
Add custom exception handling
Add main