add number overflow protection