do not use unsigned
and check for sign explicitly