Add State Machine + gitignore