Use uint32_t instead of uint16_t, otherwise you must pay more attention for comparing polytypic vars