Implemented Board, Square, EmptySquare