use unsigned longs