be careful with overflow
try to avoid the overflow
better
better
merge