add exception throw for negative