better not use unsigned ints