diff --git a/src/tipa.rs b/src/tipa.rs
index 0838dd8e41896ba0305a245e83afe1faaeb7c563..ef2860b26b62681c590b55a2fe11b5f16073baa7 100644
--- a/src/tipa.rs
+++ b/src/tipa.rs
@@ -9,21 +9,21 @@ use tokio::io::AsyncReadExt;
 use tokio::fs::File;
 
 use serde::{Serialize};
-use serde_tuple::Serialize_tuple;
+//use serde_tuple::Serialize_tuple;
 use structure::{structure, structure_impl};
 
 #[derive(Debug)]
-struct ParserState {x:u32, y:u32, pressure:u32, tool:u32}
+struct ParserState {x:usize, y:usize, pressure:usize, tool:usize}
 #[derive(Debug, Serialize)]
 //#[derive(Debug, Serialize_tuple)]
-pub struct CanvasInputEvent {ts:u64, x:u32, y:u32, pressure:u32, tool:u32}
+pub struct CanvasInputEvent {ts:u64, x:usize, y:usize, pressure:usize, tool:usize}
 
 // calibration data measured on my rm2
-const MIN_X:u32 = 0;
-const MAX_X:u32 = 20966;
-const MIN_Y:u32 = 0;     // actually 154 in hardware, xochitl seems to assume 0.
-const MAX_Y:u32 = 15725;
-//const MAX_PRESSURE:u32 = 4095;
+const MIN_X:usize = 0;
+const MAX_X:usize = 20966;
+const MIN_Y:usize = 0;     // actually 154 in hardware, xochitl seems to assume 0.
+const MAX_Y:usize = 15725;
+//const MAX_PRESSURE:u16 = 4095;
 
 pub fn input_stream_parser() -> impl Stream<Item = std::io::Result<CanvasInputEvent>> {
     let mut state = ParserState{x:0, y:0, pressure:0, tool:2};
@@ -44,11 +44,11 @@ pub fn input_stream_parser() -> impl Stream<Item = std::io::Result<CanvasInputEv
             // absolute position
             if typ == 3 {
                 if code == 0 {
-                    state.x = val;
+                    state.x = val as usize;
                 } else if code == 1 {
-                    state.y = val;
+                    state.y = val as usize;
                 } else if code == 24 {
-                    state.pressure = val;
+                    state.pressure = val as usize;
                 }
             }
             // tool
@@ -72,7 +72,7 @@ pub fn input_stream_parser() -> impl Stream<Item = std::io::Result<CanvasInputEv
     }
 }
 
-fn rescale(x_raw:u32, y_raw:u32) -> (u32, u32) {
+fn rescale(x_raw:usize, y_raw:usize) -> (usize, usize) {
     // rescale x,y according to calibration data and canvas size 
     let x = (x_raw - MIN_X) * 1872 / MAX_X;
     let y = (y_raw - MIN_Y) * 1404 / MAX_Y;