work for long integer types