no overflows and strict compare