diff --git a/src/main.rs b/src/main.rs
index 77cd19a02a995bcefcd83f4378b52df92bf8547f..0020818a8cdd1fd62b05d527fceaa65a1e7bb472 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,20 +1,35 @@
-fn display(board: [char; 9]) {
+#[derive(Clone, Copy)]
+enum Square {
+    Empty,
+    Cross,
+    Circle,
+}
+
+
+fn square_to_char(s: Square) -> char {
+    match s {
+        Square::Empty => '.',
+        Square::Cross => 'X',
+        Square::Circle => 'O',
+    }
+}
+
+fn display(board: [Square; 9]) {
     for row in 0..3 {
         println!(
             " {} | {} | {}",
-            board[row * 3],
-            board[row * 3 + 1],
-            board[row * 3 + 2]
+            square_to_char(board[row * 3]),
+            square_to_char(board[row * 3 + 1]),
+            square_to_char(board[row * 3 + 2])
         );
         if row == 0 || row == 1 {
             println!("---+---+---");
         }
-        
     }
 }
 
 fn main() {
-    let board = ['.'; 9];
+    let board = [Square::Empty; 9];
 
     display(board);
 }