better board, still need refactoring + store captured move