add overflow detect