I would like to make this module more abstract, but I'm not sure how. For example, it assumes that Player, which is the code that generates a move (supply your own!), supports the following methods: $player->size($somesize); # eg, $player->size(19), ...