use u8 for consistency