use appropriate integer type