Refactor chooseBestMove into new modules
Option to run with different strategies