Apply several refactorings
Apply several refactorings

- Fix methods' internal logic
- Move tail records to the Automaton's class properties

dnl-blkv/whynot-premade,dnl-blkv/whynot-premade,dnl-blkv/whynot-premade-player,dnl-blkv/whynot-premade-player