reverse to prevent overflow