using unsigned longs