diff --git a/src/main.rs b/src/main.rs
index e849aee87a729aed44bc161c4cfa20056d8c08d7..4b163196c0ccc8a879e4b66c0cbb80ceffb5d825 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -4,6 +4,9 @@ enum Square {
     Circle,
 }
 
+struct Board {
+    board: [Square; 9],
+}
 
 fn square_to_char(s: &Square) -> char {
     match s {
@@ -13,13 +16,13 @@ fn square_to_char(s: &Square) -> char {
     }
 }
 
-fn display(board: [Square; 9]) {
+fn display(board: Board) {
     for row in 0..3 {
         println!(
             " {} | {} | {}",
-            square_to_char(&board[row * 3]),
-            square_to_char(&board[row * 3 + 1]),
-            square_to_char(&board[row * 3 + 2])
+            square_to_char(&board.board[row * 3]),
+            square_to_char(&board.board[row * 3 + 1]),
+            square_to_char(&board.board[row * 3 + 2])
         );
         if row == 0 || row == 1 {
             println!("---+---+---");
@@ -28,17 +31,19 @@ fn display(board: [Square; 9]) {
 }
 
 fn main() {
-    let board = [
-        Square::Empty,
-        Square::Cross,
-        Square::Circle,
-        Square::Empty,
-        Square::Empty,
-        Square::Empty,
-        Square::Empty,
-        Square::Empty,
-        Square::Empty,
-    ];
+    let board = Board {
+        board: [
+            Square::Empty,
+            Square::Cross,
+            Square::Circle,
+            Square::Empty,
+            Square::Empty,
+            Square::Empty,
+            Square::Empty,
+            Square::Empty,
+            Square::Empty,
+        ],
+    };
 
     display(board);
 }