maybe check for overflow ?