add overflow catch