updated it to support 64bit (2**64-1)