change board.new to use a hash as arguments
have Square raise an error on invalid value