implemented boards of arbitrary size