Move selector as monad transformer
Add generalized data structure for both AI and human players