use large enough integers